Home Tools Random Letter Generator

Random Letter Generator

Generate random letters A–Z with full control: bulk output up to 500, vowels/consonants filter, no-duplicates mode, frequency weighting, and one-click copy for code and games.

max 500
Result

What this tool does

This random letter generator produces letters from the English alphabet (A–Z) with full control over case, quantity, filtering, and uniqueness. It covers every use case competitors don't: frequency-weighted generation that mirrors real English text, no-duplicate mode for drawing tiles like Scrabble or Boggle, and bulk output up to 500 letters with flexible separators for copy-pasting directly into code.

When to use each option

Vowels only
Phonics drills, teaching vowel sounds to early readers, generating readable syllable fragments.
Consonants only
Word-building exercises, consonant cluster practice, spelling games that start with a consonant.
No duplicates
Simulate drawing tiles from a Scrabble bag. Each letter appears at most once per generation — exactly like a fair draw.
Frequency weighting
E, T, A, O, N appear more often — matching real English text. Use for linguistic analysis, natural-looking test data, or NLP demos.
Bulk + comma separator
Generate 100 letters as a comma-separated list. Paste directly into a Python list literal, Java array, or CSV file.
One per line
Each letter on its own line. Ideal for loading into Excel, reading into a script line-by-line, or building flashcard decks.

How to do this in code

If you need random letters inside a program rather than a browser tool, here's the idiomatic approach in the languages you're most likely to be using.

Python
import random, string

# Single random letter
letter = random.choice(string.ascii_uppercase)

# 10 unique letters (no duplicates)
letters = random.sample(string.ascii_uppercase, 10)

# Vowels only
vowels = random.choice('AEIOU')

# Frequency-weighted (simplified)
import random
POOL = 'EEEEEEEEEEEETTTTTTTTTAAAAAAAAAOOOOOOOO' \
       'IIIIIIIINNNNNNNNSSSSSSSSHHHHHHHHRRRRRRR'
letter = random.choice(POOL)
Java
import java.util.Random;

Random rng = new Random();

// Single random uppercase letter
char letter = (char)('A' + rng.nextInt(26));

// Lowercase
char lower = (char)('a' + rng.nextInt(26));

// 10 unique letters (shuffle approach)
List<Character> all = new ArrayList<>();
for(char c='A'; c<='Z'; c++) all.add(c);
Collections.shuffle(all);
List<Character> picked = all.subList(0, 10);

// Vowels only
String vowels = "AEIOU";
char v = vowels.charAt(rng.nextInt(5));
JavaScript
// Single random letter
const letter = String.fromCharCode(
  65 + Math.floor(Math.random() * 26)
);

// N unique letters (no duplicates)
const all = [...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'];
const shuffle = a => a.sort(()=>Math.random()-0.5);
const unique = shuffle(all).slice(0, 10);

// Vowels only
const vowels = 'AEIOU';
const v = vowels[Math.floor(Math.random()*5)];

// Cryptographically random (for security use)
const buf = new Uint8Array(1);
crypto.getRandomValues(buf);
const secure = String.fromCharCode(
  65 + (buf[0] % 26)
);
Shell / Bash
# Single random uppercase letter
cat /dev/urandom | tr -dc 'A-Z' | head -c 1

# 10 random letters (with repeats)
cat /dev/urandom | tr -dc 'A-Z' | head -c 10

# 10 unique letters
echo {A..Z} | tr ' ' '\n' | shuf | head -10

# Lowercase
cat /dev/urandom | tr -dc 'a-z' | head -c 1

English letter frequency reference

When frequency weighting is enabled, letters are drawn proportionally to their occurrence in typical English text. E is the most common letter (~13% of all letters in English prose) and Z is the rarest (~0.07%). This matters when you need generated letters to look natural — e.g. for NLP test fixtures, readable Lorem Ipsum variants, or linguistic simulations.

E 12.7% T 9.1% A 8.2% O 7.5% I 7.0% N 6.7% S 6.3% H 6.1% R 6.0% D 4.3% L 4.0% C 2.8% U 2.8% M 2.4% W 2.4% F 2.2% G 2.0% Y 2.0% P 1.9% B 1.5% V 1.0% K 0.8% X 0.2% J 0.2% Q 0.1% Z 0.07%
Other Tools
Base64 Encoder & DecoderJSON Formatter & ValidatorJWT DecoderMinutes to Hours ConverterRegex Tester — JavaScript & PythonSQL Formatter & BeautifierUnix Timestamp ConverterTimezone ConverterXML Formatter & Validator