Per-character random case
The op splits each line into characters, then for each character calls `Math.random() < 0.5 ? toUpperCase() : toLowerCase()`. Every character is decided independently - neighbouring letters often end up the same case by chance, but there is no streak avoidance or rhythm logic.
The classic use case is sPoNgEbOb-style mocking text. Each run produces a different output - if you hit the tool twice with the same input you will get different capitalizations. There is no seed input.
Non-letter characters (digits, punctuation, emoji) pass through because they have no upper/lower form. Word boundaries and line breaks are preserved.
How to use random case list items
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this tool actually does
One op, per-character randomization, no options.
Independent per-character coin flip
Each letter decided separately via `Math.random()`. No streak avoidance, no alternation guarantee - you can get `AAA` or `aaa` in a row by chance.
Non-letters pass through
Digits, punctuation, spaces, and emoji have no case, so they emit as-is. Only letters are touched.
Non-reproducible
No seed input. Same input + same click produces a different output. If you need a specific scramble, copy the result before re-running.
Blank lines preserved
Line count is preserved. Empty lines emit as empty lines.
Any recovery path loses the randomization
Once random-cased, you cannot recover the original capitalization. Normalize via Lowercase or Uppercase, or re-enter the input.
Worked example
One possible output - your result will differ on re-run.
apple banana cherry
aPpLe bAnaNA ChErrY
Settings reference
This tool has no options.
| Setting | What it does | Effect on the sample |
|---|---|---|
| No options | 50/50 coin flip per letter | Different output every run |
| Non-letters (automatic) | Pass through unchanged | Digits, punctuation, emoji untouched |
| Blank lines (automatic) | Preserved | Empty line stays empty |