Random Letter Generator
Generate random letters with control over case, vowels or consonants only, exclusions, repeats, and an optional English letter distribution.
1 to 100.
Off: each letter appears at most once, so the draw is limited by the pool size.
crypto.getRandomValues, via rejection sampling — never from Math.random. The difference matters: a random byte holds 256 possible values, and 256 is not a multiple of 26. Taking a byte modulo 26 would make the first six letters of the alphabet slightly more likely than the rest. Rejection sampling discards the out-of-range values and draws again instead, so every letter is equally likely.How it works
- Choose how many letters to draw and how they should be cased.
- Narrow the pool to vowels or consonants, and choose whether repeats are allowed.
- Every letter comes from your browser’s cryptographically secure random source via rejection sampling.
Frequently Asked Questions
How random is it?
It uses the browser’s cryptographic random source with rejection sampling, so every letter in the pool is equally likely. Math.random is not used anywhere — it is seeded per context and biased in some engines, and there is no reason to use the weaker source when the strong one is already available.
Can I get letters without repeats?
Yes. With repeats disabled the pool is shuffled and sliced, so all draws are distinct, and asking for more letters than the pool holds is refused with a message rather than looping.
What is the weighted option for?
A uniform draw over 26 letters produces unplayable hands — far too many Q, X and Z and not enough vowels. The weighted mode uses the standard English Scrabble distribution, which is tuned for exactly that problem.
Is the pool shown?
Yes. The exact set of letters being drawn from and its size are displayed, so the odds are auditable rather than a matter of trust.