A nameless shopkeeper is a vending machine. A shopkeeper named Tova Greenmantle who squints at every coin is a person your players might actually remember next week. The difference between a forgettable session and a memorable one often starts with a name.
The problem is that improvising names mid-session is genuinely hard. You reach for "Bob" or "Greg" and the immersion cracks. Or worse, you accidentally name two different NPCs the same thing and spend ten minutes untangling which Aldric the party is supposed to be meeting.
How this generator works
Each race draws from a curated pool of first names and surnames built to match the phonetic conventions of that culture in the SRD and broader fantasy tradition. Human names lean medieval European. Elven names favour long vowels and soft consonants. Dwarvish names are clipped and guttural. Orcish names hit hard. The result is names that sound right for the setting without copying published characters.
The "Any" gender option pulls from both pools, which is useful for cultures where names are not strongly gendered or when you want variety without thinking about it.
Using names at the table
The best practice is to generate a batch of ten before the session and write them on index cards or a sticky note. When the party inevitably talks to someone you did not plan, pull a name from the list. After the session, note which names you used and what the NPC did. This turns random names into a living cast.
For recurring NPCs, pair the name with one physical detail and one personality trait. Three data points is enough for players to build a mental model. More than that and you are writing a novel, not running a game.
Names across systems
While this generator is built with D&D 5e races in mind, the names work in Pathfinder, 13th Age, Shadow of the Demon Lord, and most fantasy RPGs. The phonetic conventions are genre-wide. If you are running a sci-fi or modern game, the human names still hold up; the fantasy race names obviously do not.
If you run games on Roll20 or Foundry VTT, keep a text file of pre-generated names in your campaign folder. Copy-paste is faster than alt-tabbing to a generator mid-scene, and your players will never know the difference.
Building a cast without accidental overlaps
One of the quiet disasters of NPC naming is accidentally giving two characters similar-sounding names: Aldric and Aldren, Faelindra and Faerindel. Players conflate them. Sessions get tangled. The solution is to keep a running list and cross-reference before introducing a new character. Generate ten names at once, pick the ones with clearly distinct opening sounds, and save the rest for later.
A useful heuristic: no two active NPCs should share a first syllable unless the similarity is intentional (twins, siblings, a cultural convention). Players remember names by their opening sound. "The one who starts with B" is how a character lives in your players' memory until they have had two or three significant scenes.
Trade titles help with disambiguation. "Aldric the blacksmith" and "Aldren the tax collector" can coexist because the title carries the identifying weight. Use the "with trade or title" toggle on this generator to produce titled names, then use the title as the primary identifier in casual NPC references.
Using names in published and shared content
All names generated here are free to use in personal and commercial projects with no attribution required. If you are writing a published adventure module, a community zine, or a one-shot for a convention, the names from this tool are yours to use.
A note on naming conventions in published sourcebooks: official D&D products list example names for each race in their setting material. This generator draws on those phonetic patterns rather than lifting names directly, so you will not accidentally name your NPC the same as a famous lore character. For settings with very specific canonical naming conventions, such as Eberron warforged names or Ravenloft Vistani names, supplement this tool with setting-specific references.