01How to use it
How do I generate random words?
Type a number from 1 to 20 into the count box, tick Capitalize if you want title-case words, and click Generate. A fresh, non-repeating set of words appears immediately as letter tiles, drawn from a built-in pool of 119 unique English words. Click Generate again for a brand new batch; the full pool resets every time.
- Type a number from 1 to 20 in the count box.
- Tick the Capitalize checkbox if you want each word to start with a capital letter, useful for names or titles.
- Click Generate. A fresh set of random words appears immediately. Click again for a new batch.
03Method
How does the randomness work?
The generator uses JavaScript's built-in Math.random(), which produces a pseudo-random number between 0 and 1. The code picks a word at random from the pool, removes it so it cannot be picked again in the same batch, then repeats until it has the number of words you asked for. The result is a sample without replacement, so a single draw never contains a duplicate. Each click restores and reshuffles the full pool from scratch.
04Pick your mode
Which setting fits what you're actually doing?
The count box and the capitalize checkbox look like two small controls, but they cover most of what people show up here for. Nobody needs the same batch size for a solo writing warm-up as for a six-person party game, so match the setting to the task instead of leaving it on the default of five.
| What you're doing | Count to use | Capitalize? |
| Pictionary or Charades round | 1, generate again each turn | No |
| Timed story warm-up | 3 | No |
| Diceware-style passphrase | 4 to 6 | No, add your own separators |
| Brainstorming a stuck meeting | 5 to 10 | No |
| Username or project code name | 2, then combine them | Yes |
| Vocabulary drill for a title or heading | 1 at a time | Yes |
Twenty is the ceiling for a reason. Past that, most people stop reading the list and just skim, which defeats the point of a constraint-based exercise. If a task genuinely needs more than twenty words, run the generator twice and treat it as two separate batches rather than one long one.
05Under the hood
A worked pull, straight from the code
Every click runs the same three lines. The script clones the 120-entry WORDS array into a fresh copy called pool, so the original list is never mutated between clicks. Then it loops the number of times you asked for: each pass calls Math.floor(Math.random()*pool.length) to get a random index, splices that word out of pool, and pushes it into the result. Because the word is removed from the pool the instant it's picked, the same word cannot come up twice in one batch. That's what "sample without replacement" means in practice, not just in the FAQ answer.
Say you ask for 4 words. First pass, the pool has 120 candidates and picks one, for example "harbor." Pool now has 119. Second pass picks from those 119, say "quill." Pool has 118. Third pass, "dragon." Pool has 117. Fourth pass, "meadow." Pool has 116, but the loop has already produced its four words, so it stops and hands you: harbor, quill, dragon, meadow. Click Generate again and the pool rebuilds to the full 120 before the next draw starts, which is why "harbor" can legally show up again in your very next batch.
06Fine print
What this tool does and doesn't promise
The randomness comes from your browser's built-in Math.random(), which is fast and free of any server round-trip, but it's a pseudo-random number generator, not a cryptographic one. That distinction only matters if you were planning to use this for something like generating a security key. For games, writing prompts, and brainstorming, the distinction is academic. Nothing you generate is sent anywhere or stored; the whole thing runs in the tab you're looking at.
The pool itself is fixed at 120 entries (119 unique, since "yellow" appears twice by design so it can surface in two different tile colors in testing). That means the generator draws from a curated, general-English list rather than an open-ended dictionary. If you need words tied to a specific theme, a specific part of speech, or a much larger vocabulary, treat this as a starting point and adapt the output rather than expecting the pool itself to expand. The full breakdown of that list, counted by length and starting letter, lives on the Word List Reference page.
Real questions from readers
How many words are in the word list?
The built-in list has 120 entries, 119 of them unique (one word, "yellow," appears twice). You can generate up to 20 unique words per click, with no repeats within a single batch. See the full breakdown on the Word List Reference.
Are the words truly random?
They are pseudo-random, generated by your browser's Math.random() function. Fine for games, prompts, and brainstorming. Not suitable for cryptographic purposes.
Can I get the same word twice in one batch?
No. The generator samples without replacement, so each word in a single batch is unique. Click Generate again and you start fresh, so the same word could appear in a later batch.
Is this random word generator free?
Yes, fully free. No account, no server call, nothing stored. The word list and the randomization all run in your browser.
07Live count
What does the pool actually contain?
The table below is not typed in by hand. A short script reads the same WORDS array the Generate button draws from and counts it the moment this page loads, so the figures always match the live code rather than a snapshot someone forgot to update.
| Metric | Value |
| Counting the pool... |
Want the same breakdown by exact length and starting letter, published as a static table with a CSV download? See the Word List Reference.