Random per-letter flip
Randomize case walks every [A-Za-z] match and rolls Math.random() < 0.5 for each one. On heads it lowercases, on tails it uppercases. Non-letters (digits, punctuation, whitespace, emoji, accented characters outside ASCII) pass through unchanged. The output is different on every run because each keystroke triggers a fresh batch of rolls.
Compare with alternating case, which uses a strict lower/upper/lower/upper pattern. Random case looks messier (sometimes you get three lowercase in a row, sometimes a long uppercase run), which reads as more genuine chaos in social-media posts. Compare with invert case, which flips each character's existing case rather than rolling fresh.
The transform is one-way: there is no "unrandomize" option because the original case is lost. Run lowercase on the output to flatten everything back to lowercase, or sentence case to recover prose-style capitalisation.
How to use randomize text case
- 1Paste or type your text into the input panel on the left.
- 2A randomised version appears in the output panel on the right.
- 3Edit the input or add a trailing space to re-roll the random flips on demand.
- 4Click Copy in the output header to grab the current roll.
- 5Run lowercase on the output if you want to flatten it back.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run a saved workflow Plus |
What this tool actually does
ASCII letter targeting
The engine matches /[A-Za-z]/g, so only basic Latin letters are randomised. Accented Latin letters (é, ñ) and non-Latin scripts (Cyrillic, Greek) pass through with their original case. If you need to flip accented letters too, run remove accents first.
50/50 coin flip per letter
For each match, the engine generates a fresh Math.random() value and compares it to 0.5. There is no seed, so two runs on the same input give different results. The output is non-deterministic by design.
Re-rolls on every input change
The transform fires on every keystroke, so adding a trailing space or pressing any key re-rolls the entire output. Use this to cycle through variants until you find one you like.
Non-letters pass through
Digits, punctuation, whitespace, line breaks, emoji, and accented letters all pass through unchanged. Only basic A-Z and a-z are randomised.
One-way transform
There is no reverse option because the random rolls are not stored. To reset the output to a known case, run lowercase, uppercase, or sentence case on it.
Worked example
Each Latin letter has a 50/50 chance of upper or lower. Your run will produce a different mix because the rolls are non-deterministic. Non-letters (spaces, the newline) pass through.
you cannot predict the output randomize is chaos
yOu CanNot pREdIct THe oUtPUt RanDOmIze Is cHaoS
Settings reference
| Behaviour | Effect on output |
|---|---|
| Basic Latin letter (A-Z, a-z) | 50/50 random flip via Math.random(). |
| Accented Latin letter | Pass through unchanged. Run remove accents first if you want them randomised. |
| Non-Latin script | Pass through (Cyrillic, Greek, CJK, Arabic, etc). |
| Digits and punctuation | Pass through unchanged. |
| Whitespace and line endings | Unchanged. LF stays LF, CRLF stays CRLF. |
| Emoji | Pass through unchanged. |
FAQ
Why does the output change every time I type?
Math.random() rolls each time, so each edit gives you a new variant. Add a trailing space and delete it to cycle a fresh roll without changing the source text.Can I get the same random output twice?
Does it flip my accented letters?
café stays café because é is outside the ASCII range. To randomise accented letters too, run remove accents first.