Create Random List
Generate random lists - numbers, words, letters, UUIDs. Math.random or cryptographically secure RNG. 6 output formats. Free, client-side.
- Runs in your browser
- Nothing uploaded
- Free, no sign-up
Generate random lists of numbers, words, letters, or UUIDs. Choose between Math.random() (fast) or crypto.getRandomValues (cryptographically secure). 220-word dictionary. 6 output formats.
How to Use Create Random List
- Pick a type. Numbers (integer or decimal, custom range), words (220-word dictionary or syllable-invented), letters (26 or 52 depending on case), or UUIDs.
- Set count. Preview line shows the pool size + warns if you've requested more unique items than pool allows.
- Toggle Unique for no duplicates. Toggle Crypto RNG for cryptographically secure generation (slower; needed for security tokens, passwords, drawings).
- Pick sort and output format. CSV is RFC 4180 compliant (quotes embedded commas/quotes properly).
- Generate (or Ctrl+Enter). Stats show actual count generated. If unique-mode hit pool exhaustion, info toast tells you (no silent shortfall).
Frequently Asked Questions
Math.random() vs cryptographically secure RNG – what’s the difference?
Math.random() is fast but uses a deterministic pseudo-random generator. Its internal state can be predicted given enough output samples – fine for shuffling cards in a game, NOT fine for password generation, secret tokens, lottery draws, or anything where an attacker predicting the output would be a problem. crypto.getRandomValues draws from the OS entropy pool (Linux /dev/urandom, Windows CNG, etc.) and is suitable for cryptographic use. Toggle the checkbox. UUIDs always use the crypto RNG regardless.
Was there an off-by-one bug in the original?
Yes. The original used Math.floor(Math.random() * (max - min) + min) for integer generation, which produces values in [min, max) – never returning max. Setting min=1, max=100 actually produced 1-99. The fix is +1: Math.floor(rng() * (max - min + 1)) + min. Now max is reachable.
What happens with unique mode if the pool is too small?
The tool returns the maximum unique items possible plus an info toast: “Requested 1000 unique, got 220 (pool exhausted)”. The original silently broke out of the loop after 100 failed attempts, returning fewer items than requested with no indication. Now you get both the truth and the toast.
How big is the common-words dictionary?
220 words. The original had 48. Syllable-based mode synthesizes from 90 syllables in 2-4-syllable combinations, giving effectively infinite distinct outputs.
What’s the pool size for each type?
Letters: 26 (single case) or 52 (mixed). Words common: 220. Words syllable: effectively infinite (~90⁴ = 65 million 4-syllable combinations). Numbers integer: max - min + 1. Numbers decimal: effectively infinite. UUIDs: effectively infinite (2¹²² ≈ 5×10³⁶).
How are UUIDs generated?
Standard crypto.randomUUID() when available (Chrome 92+, Firefox 95+, Safari 15.4+). Fallback uses crypto.getRandomValues() with proper version-4 / variant bit setting. Last-resort fallback for ancient browsers uses Math.random – but this hasn’t been needed since 2022.
What does the CSV output look like?
One value per row. Values containing commas, double-quotes, or newlines are wrapped in "..." with internal quotes doubled (RFC 4180). For numbers/letters this rarely matters; for words it’s safe but unnecessary. Useful when piping into Excel / Google Sheets.
What’s the cap?
100,000 items per generation. The original was 10,000; bumped because main-thread generation is fast enough for the new cap (even at 100k UUIDs you see ~1 second). For larger needs, run in a Node script.
Why no AI-slop “perfect for X” use-case lists?
Because they’re filler. The tool does what it says; you know your use case better than we do. The original FAQ said things like “Perfect for testing data, words for placeholder text, letters for password generation”. That last one is dangerous advice – letters generated via Math.random() are NOT safe for passwords. Use the Crypto RNG checkbox if you actually need a password.
Is anything uploaded?
No. The random generation runs entirely in your browser – nothing is sent to a server, logged, or stored, and the tool keeps working offline once the page has loaded.
Related Tools
Add Bullets to List Item →
Add bullet points to list items instantly. Choose from presets or use custom bullets.…
Add List Prefix - Prepend Text →
Add List Prefix list items instantly. Bullets, numbers, arrows, checkboxes, or custom text. Free,…
Add Suffix to List Items →
Add suffix to list items instantly. Periods, commas, punctuation, or custom text. Free, secure,…
Alphabetize List Sort Items Online | A-Z →
Alphabetize list items instantly. Sort A-Z or Z-A, case-sensitive or not. Remove duplicates option.…
Append List Items - Merge Lists →
Append and merge lists instantly. Combine multiple lists with duplicate removal. Free, secure, client-side…
Change List Length →
Change List Length Truncate, pad, or cycle any list to a target length. Free,…
Change List Separator →
Change List Separator and Convert list separators between newline, comma, tab, semicolon, pipe, and…
Chunk List Text →
Split any list into fixed-size chunks with line/numbered/labeled/custom-separator output. Live preview, keep-or-drop trailing chunk.…
Colorized List Item →
Colorized list item online. Turn any list text into a colour-coded HTML block with…
Convert List to Columns →
Arrange list items into 2-10 monospace-aligned columns with horizontal or vertical fill. Free, offline,…
Convert List to Image →
Turn a text list into a PNG or JPEG image with custom fonts, colors,…
Count List Items →
Count list items with frequency analysis, duplicates, unique-only output, TSV export. Free, client-side, instant.