Roll a hero.
Walk in ready.
Race, class, background, alignment, full ability scores with modifiers, and a one-line backstory hook. SRD-only, fan-made, no signup. Hit reroll until something speaks to you.
—
——
Settings
SRD-only. Dungeons & Dragons is a trademark of Wizards of the Coast LLC. RandomGen is a fan project, not affiliated with or endorsed by Wizards of the Coast.
About this generator
Most D&D character generators try to do too much. They build the whole sheet — spells, feats, multiclass paths, equipment to the gold piece — and end up with something the table will spend twenty minutes editing anyway. This one stops short on purpose. You get a solid skeleton: race, class, background, alignment, ability scores with racial bonuses applied, plus a hook to plug into session zero. The rest is yours.
The take: a random character is a good first draft, not a final answer. The dice will sometimes hand you "halfling barbarian with 6 Strength" — and that combination is exactly the kind of sideways idea most players never write themselves. Reroll if you hate it. Keep it if it makes you laugh. Either way, you went into the prep with something to react to instead of a blank sheet.
Under the hood, every roll uses crypto.getRandomValues with rejection sampling, so a d20 here is genuinely uniform — no Math.random bias. The four stat methods cover most house preferences: 4d6 drop lowest for slightly heroic classics, standard array for the official-balanced builds, point buy random for "reasonable spread without the spikes," and 3d6 straight if your DM is feeling cruel. Stats are then assigned to abilities in the order each class typically wants them, with racial bonuses layered on top.
The library is strictly SRD — open content under the OGL — so subraces, subclasses, and proprietary lore are out of scope. If you need a Hexblade Genasi, this is the wrong tool. If you need a fast Half-Orc Fighter to replace a PC who just fell into a pit trap, you're in the right place. For more random fuel, the name generator can help with party members, the dice roller handles in-session rolls, and random MTG cards sit one click away when D&D night turns into Magic night.
What people use it for
Surprise one-shots
DM calls "we're playing in 30 minutes" — generate, print, hand it out. Five sheets in two minutes, ready to learn the rules at the table.
Emergency replacements
The party's cleric just got disintegrated. Roll a fresh character matching the level, slot them in next session, keep the campaign moving.
NPC factory
Need a tavern keeper, a rival adventurer, a captured bandit with stats? Generate, name, done. The sheet is enough to run a fight.
Campaign brainstorming
Reroll until a combination tickles you — "tiefling druid with 16 Charisma" — and build the whole campaign concept around that single weird hook.
Learning the rules
New players freeze on character creation. Hand them a generated sheet on first night, let them play, learn the rules in motion.
Streaming & podcasts
Actual-play hosts use random sheets to seed one-shot specials. Listeners love the chaos of a 6-Charisma bard nobody planned for.
How it works
The dice
Every roll uses crypto.getRandomValues with rejection sampling. A d20 isn't Math.floor(Math.random()*20)+1; it's a 32-bit integer trimmed to the largest multiple of 20 it fits in, rerolled if it lands above. The result is exactly uniform. Over a thousand rolls, every face will trend to 1/20 — no creeping bias from float modulo.
The stats
For 4d6 drop lowest, we roll four d6s and discard the smallest. For 3d6 straight, three d6s sum directly. Standard array hands you the canonical (15,14,13,12,10,8). Point buy random spends 27 points across the six abilities using a weighted greedy walk, so the spread looks plausible. The six values are then ranked high-to-low and assigned to abilities in the priority order each class prefers — Wizards lead with Intelligence, Paladins with Strength, and so on.
The shuffles
Lists of races, classes, backgrounds, and alignments are randomized via Fisher-Yates using the same uniform random source. The "any" filter draws from the full list; specific filters force a single value. Hit points scale by class hit die plus Constitution modifier per level — flat formula, not rolled, because rolled HP at level 20 is its own can of worms.
State & sharing
Every generated character writes its seed to the URL via history.replaceState, so reload regenerates the exact same character. localStorage remembers your last 10 characters; click any chip to bring it back.
Common questions
Is this an official D&D tool?
No. This is a fan-made generator that uses only the System Reference Document (SRD) — the open subset of fifth-edition rules Wizards of the Coast publishes for free under the Open Game License. We are not affiliated with Wizards of the Coast and don't include subraces, subclasses, feats, or proprietary lore beyond the SRD.
Which stat method should I pick?
4d6 drop lowest is the classic — slightly above-average heroes with the occasional standout. Standard array (15, 14, 13, 12, 10, 8) is fastest and balanced. Point buy random is the closest you'll get to a "reasonable" character without manual choices. 3d6 straight is brutal old-school — expect a 6 somewhere.
How are stats assigned to abilities?
We rank the rolled scores high-to-low and place them into the order each class typically prefers — Fighters get their best in Strength, Wizards in Intelligence, Rogues in Dexterity, and so on. You can shuffle them yourself afterwards; this is meant as a starting sheet, not a final one.
Are racial bonuses applied?
Yes. SRD ability score increases are added on top of your rolled scores before modifiers are calculated. So a Half-Orc Fighter will get a +2 Strength on top of whatever the dice rolled, and a Dwarf Cleric gets a +2 Constitution on top of theirs.
What is a "backstory hook"?
A one-sentence prompt drawn from the background — a debt, a rival, a stolen heirloom, a lost mentor. It's enough to walk into session zero with an answer when the DM asks "why are you here?" Expand it however you want.
Can I share a character with my group?
Yes. Once you generate a sheet, the URL updates with the character's seed. Send the URL to anyone — they'll see the exact same character. Useful for posting NPCs in a Discord or backing up a player's emergency replacement.
Does it work for higher-level characters?
Set the level (1–20) and the sheet adjusts proficiency bonus, hit points, and notes. We don't roll spells, feats, or multiclassing — those depend on player choice and DM approval. The generator seeds a sheet; it doesn't finish one.
Related generators
Same neighborhood — different question.