Randomize text case

Randomize case rewrites every Latin letter in your text with a 50/50 chance of being uppercase or lowercase. Paste any text and get a different chaotic flip every time you type or edit. The result is similar to alternating case but without the regular pattern, which reads as more chaotic in chat and meme posts.

Input
Line 1:1 LF cloud_done Saved locally
Result Randomize Case
0 lines 0 chars

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

  1. 1Paste or type your text into the input panel on the left.
  2. 2A randomised version appears in the output panel on the right.
  3. 3Edit the input or add a trailing space to re-roll the random flips on demand.
  4. 4Click Copy in the output header to grab the current roll.
  5. 5Run lowercase on the output if you want to flatten it back.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun 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.

Input
you cannot predict the output
randomize is chaos
Output
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?
That's by design. The transform fires on every keystroke and runs fresh 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?
No, the rolls are not seeded. If you find a variant you want to keep, copy it out of the output panel before changing the input.
Does it flip my accented letters?
No. The regex targets basic A-Z and a-z only. café stays café because é is outside the ASCII range. To randomise accented letters too, run remove accents first.
How is this different from alternating case?
Alternating case uses a strict lower/upper/lower/upper pattern, so the output is predictable. Randomize case rolls per letter, so you get streaks and unpredictable variation. Random reads as more chaotic in posts and chats.
How do I get plain text back?
Run the output through lowercase or sentence case. The original case cannot be recovered (the rolls are gone), but you can flatten the output to a known state.