Draws one character at a time from the same pool as above (case, vowels/consonants, digits, look-alikes and custom alphabet all apply). Put it on a projector or shared screen; Full screen keeps the draw buttons visible.
About this tool
This random letter generator picks letters from A to Z, or any set of characters you choose, using your browser's cryptographic random number source. It can produce single letters, 3-letter or 4-letter strings, mixed letter and number codes, vowel-only or consonant-only draws, and up to 1,000 items at once. A big letter mode shows one large letter at a time for classroom and party games. Everything runs on your device; nothing is sent to a server.
How to use the random letter generator
- Set How many (1 to 1,000) and Letters per item (1 to 20). For a random 3 letter generator, set Letters per item to 3; for 4-letter strings, set it to 4.
- Choose the case. Uppercase, lowercase, or mixed, where each character is independently upper or lower.
- Narrow the letters if you need to. Vowels only uses A, E, I, O and U. Consonants only uses the other 21 letters, with Y counted as a consonant.
- Tick the extras. Include digits 0-9 turns it into a random letter and number generator. Exclude look-alikes removes O, o, 0, I, l and 1, which are easy to confuse when read aloud or copied by hand. No repeats in the batch makes every item in the list different.
- Or type a custom alphabet. Any characters you enter become the pool, each counted once even if you type it twice. Spaces are ignored. The case, letter, and digit options are then ignored, but look-alike exclusion still applies.
- Click Generate letters, then Copy or Download .txt. Pick New line, Space or Comma as the separator for pasting into a spreadsheet, document or code.
How the randomness works
Each character is chosen with crypto.getRandomValues(), the Web Crypto method that fills an array with cryptographically strong random values. It is the same source browsers provide for generating keys and tokens, and it is much harder to predict than Math.random().
Random bytes do not map evenly onto 26 letters by themselves. The simple approach, taking a random number and using the remainder after dividing by 26, creates modulo bias whenever the range of the random number is not a multiple of 26. This tool avoids that with rejection sampling: it draws an unsigned 32-bit number (0 to 4,294,967,295), and if the number falls in the small leftover slice at the top of the range that does not divide evenly, it throws the number away and draws again. Only numbers below the largest multiple of the pool size are kept, so every character in the pool has exactly the same chance.
With No repeats in the batch, the tool keeps drawing and skips any item already in the list. When the number of possible items is small (20,000 or fewer), it lists them all and picks from that list with a shuffle driven by the same unbiased random numbers, so it never stalls.
Worked example: why rejection sampling matters
Suppose a generator took one random byte (0 to 255) and used byte % 26. Since 256 = 9 × 26 + 22, the first 22 letters, A through V, would each come up 10 times out of 256 (about 3.91%), while W, X, Y and Z would come up only 9 times out of 256 (about 3.52%). A fair letter should be 1 in 26, about 3.85%.
This tool uses 32-bit numbers instead. For a 26-letter pool, 4,294,967,296 leaves a remainder of 22 when divided by 26, so only the top 22 values (4,294,967,274 and above) are rejected. That happens about 5 times in a billion draws, so the extra work is negligible, and the result is exactly uniform.
The default settings, 10 items of 1 uppercase letter, give each item a 1 in 26 chance of being any letter, and repeats are normal: with 10 draws from 26 letters, about 86% of lists contain at least one repeated letter. Tick No repeats if you need 10 different letters. As more letters are added per item, the number of possible strings grows quickly:
| Setting | Pool size | Possible 3-character items | Possible 4-character items |
|---|---|---|---|
| Uppercase letters | 26 | 17,576 | 456,976 |
| Uppercase letters + digits | 36 | 46,656 | 1,679,616 |
| Mixed case letters | 52 | 140,608 | 7,311,616 |
| Vowels only | 5 | 125 | 625 |
Those counts are why the tool can refuse a request: asking for 200 different 3-letter vowel strings is impossible because only 125 exist, so it tells you the limit instead of quietly returning fewer.
Big letter mode
Category games, where every player has to name a fruit, a city or a band starting with the same letter, need a fair letter called out each round. Big letter mode shows one character in very large type so a whole room can read it. With No repeats this round ticked, each letter is drawn only once until the pool runs out, then New round starts again. Many groups skip hard letters; type the letters you want to play with into the custom alphabet box.
Common mistakes
- Expecting no repeats from a random draw. Repeats are a normal part of randomness; use the No repeats option when you need distinct items.
- Forgetting that the custom alphabet overrides the case and vowel settings. Clear the box to go back to the standard options.
- Using these strings as passwords. Short letter strings are easy to guess; use the Password Generator for anything that protects an account.
- Reading mixed-case output aloud. Mixed case and digits invite confusion between similar shapes, which is what the look-alike option is for.
Use cases
- Classroom games and phonics practice. Call out a letter for students to write, sound out or find a word for.
- Category and word games. Pick the starting letter for each round in big letter mode.
- Test data and placeholder codes. Generate 3- or 4-letter codes or letter and number strings for mockups and spreadsheets.
- Creative prompts. Draw initials for character names, or a random letter to start a drawing or writing exercise.
- Fair choices. Assign letters to options and let the draw decide.
Need numbers in a range instead of letters? Use the Random Number Generator. To shuffle the letters of a word you already have, try the Word Scrambler, and to switch generated text between upper and lower case afterwards, use the Case Converter.
Frequently asked questions
Leave How many at 1 or more, set Letters per item to 1, keep All 26 letters and Uppercase selected, then click Generate letters. Each letter has the same 1 in 26 chance on every draw. For a single large letter on screen, use the Draw a letter button in big letter mode instead.
Yes. Tick No repeats in the batch and every item in the list will be different. With single uppercase letters you can ask for up to 26, which gives you the whole alphabet in a random order. If you ask for more distinct items than the settings allow, the tool shows the maximum instead.
Tick Include digits 0-9 and set Letters per item to the code length you need, for example 6. The pool becomes 36 characters in uppercase or 62 in mixed case. Tick Exclude look-alikes if people will read or type the codes by hand, so O and 0 or I, l and 1 never get mixed up.
In this tool Y is in the consonant set, and the vowel set is A, E, I, O and U. In English spelling Y sometimes acts as a vowel, as in gym, so if you want it included with the vowels, type AEIOUY into the custom alphabet box.
Yes. Type or paste the letters you want into the custom alphabet box and they become the pool. Each character is treated as one choice with equal odds, including accented letters and symbols. Duplicate characters are counted once, and spaces are ignored.
With No repeats this round ticked, each letter can be drawn only once. When every letter in the pool has been used, the round ends. Click New round to put all letters back, or untick No repeats this round to draw freely with replacement.