About the character name generator
The character name generator produces first-name and surname pairs drawn from genre-specific banks: fantasy (Tolkien-inspired and Society for Creative Anachronism registries), sci-fi (constructed pseudo-Latin and Anglo-Saxon roots), modern (US Social Security Administration baby-name lists), medieval (Domesday Book derivatives), mythological (Greek, Norse, Egyptian, Hindu), dark (gothic/horror archetypes), noble (House of Lords and European peerage patterns), and post-apocalyptic (single-word or epithet-style). For writers, RPG players, and game developers who want a usable name in three seconds.
How it works
The algorithm is two independent uniform-random samples: one from the first-name bank, one from the surname bank, both filtered by the selected genre. The two are joined with a space and rendered. Each generation is statistically independent, so 8 names produced in one batch are not constrained to be unique.
// Generation pipeline
GENRES = {
fantasy: {first: [...] , last: [...] }, // 480 first / 320 last
sci_fi: {first: [...] , last: [...] }, // 320 / 240
modern: {first: [...] , last: [...] }, // 800 / 600 (US SSA top names)
medieval: {first: [...] , last: [...] }, // 280 / 180
mythological: {first: [...] , last: [...] }, // 200 / 120
dark: {first: [...] , last: [...] }, // 240 / 180
noble: {first: [...] , last: [...] }, // 300 / 220
post_apocalyptic:{first: [...] , last: [...] }, // 180 / 80
}
generate(genre):
bank = GENRES[genre]
return bank.first[random(bank.first.length)]
+ " "
+ bank.last[random(bank.last.length)]
The combined name space for the fantasy genre is roughly 480 x 320 = 153,600 unique combinations. Collision probability for 8 samples is about 1 in 19,000, so most batches return 8 distinct names.
Worked example
Generate a single fantasy name:
- Genre filter:
fantasy. Bank size: 480 first names, 320 surnames. - Sample first-name index: random integer in [0, 480) -> 217 ->
Aerion. - Sample surname index: random integer in [0, 320) -> 88 ->
Stormblade. - Concatenate with a space:
Aerion Stormblade. - Render to the result list.
Aerion Stormblade. The whole pipeline runs in well under 1 ms because there is no Markov chain or external API: just two array lookups. To explore the space, click "Generate 8" and pick the pair that fits the character's tone.Genre reference
Each genre uses a distinct linguistic register and source material. The table below summarises what each bank is built from and the typical character profile it suits.
| Genre | Source pattern | Typical use | Example |
|---|---|---|---|
| Fantasy | Tolkien-style, SCA, Welsh and Gaelic roots | Heroic protagonists, wizards, rangers | Aerion Stormblade |
| Sci-Fi | Pseudo-Latin, Anglo-Saxon, alphanumeric codes | Starship captains, AI handlers, agents | Vex Korovin-7 |
| Modern | US SSA top 1000 baby names + Census surnames | Contemporary fiction, screenplays | Sarah Chen |
| Medieval | Domesday Book, parish records 1086 to 1500 | Peasants, knights, low-fantasy | Aldwyn of Hawksmoor |
| Mythological | Greek, Norse, Egyptian, Hindu pantheons | Demigods, archetypal heroes | Astraea Heliosdottir |
| Dark | Gothic horror, Victorian gravestones | Villains, ghosts, vampires, cultists | Mortimer Bleakwood |
| Noble | European peerage, House of Lords records | Royalty, aristocrats | Lord Edmund Ashworth-Wycliffe |
| Post-apocalyptic | Single-word, occupational, epithet | Wasteland raiders, mutants | Crow Whisper |
Common pitfalls and limitations
- Trademark surnames. Distinctive surnames from popular franchises (Skywalker, Stark, Targaryen, Potter, Bond) are protected by trademark in their commercial context. The banks exclude registered marks, but always run a USPTO trademark search before naming a major character in a commercial project.
- Cultural mismatch. The mythological bank mixes Greek, Norse, Egyptian, and Hindu sources. A character named "Astraea Heliosdottir" pairs a Greek first name with a Norse patronymic, which makes no historical sense. Cross-check the surname's origin against the first name's culture for serious projects.
- Modern gender bias. The modern bank uses the US SSA's top 1000 names per year, which over-represents English-language and Christian-tradition naming. For multicultural casts, supplement with names from regional sources or use the dedicated cultural generators.
- No phonotactic check. The generator does not test whether "Vex Korovin" sounds pronounceable to English readers. Some surname-first-name combinations create awkward stress patterns or hard-to-say consonant clusters. Read each name aloud before adopting.
- Bank staleness. The modern bank is updated annually from the SSA's December release. Names trending in 2024 to 2026 (Aria, Mateo, Luca, Olivia) appear; emergent names from the last year may be under-represented.
Frequently asked questions
Where do the name lists come from?
Each genre uses a curated bank assembled from public-domain sources: medieval names from the Domesday Book and Doomesday rolls (1086 onwards); fantasy names from Tolkien-style constructed lexicons and the SCA (Society for Creative Anachronism) name registries; modern names from the US Social Security Administration baby-name lists; mythological names from Bullfinch's Mythology and Hesiod's Theogony. None are scraped from copyrighted fiction.
Are the generated names safe to use in published fiction or games?
Plain names cannot be copyrighted, so "Aerion Stormblade" is yours to use. However, distinctive surnames from popular franchises (Skywalker, Stark, Targaryen, Potter) are protected by trademark in their commercial context. The generator excludes registered marks from its banks, but always run a quick search against the USPTO trademark database before naming a major character in a commercial project.
How do I pick a name that fits the character's culture or class?
Pick the genre that matches your setting (medieval for low-fantasy peasants, noble for aristocrats, dark for villains, post-apocalyptic for raiders). Within a genre, shorter names (1 to 2 syllables) read as common-folk while longer names (3 to 4 syllables with apostrophes or hyphens) read as elite or magical. Try regenerating with a different first-name + surname combo and pick the pairing that fits the character's age and station.
Can I get names from a specific real culture like Norse or Japanese?
The current banks cover archetypes (fantasy, sci-fi, dark, noble) rather than specific real cultures, because culture-specific naming requires understanding gender markers, patronymics, and clan suffixes that vary by region. For Norse use the medieval bank with -son/-dottir suffixes manually appended. For Japanese, use a dedicated cultural name resource: the patterns are too distinctive for archetype-style sampling.
Sources and further reading
- US Social Security Administration (2024) Popular Baby Names by Decade.
- Williams, A. (1086 / 2002 reprint) Domesday Book: A Complete Translation, Penguin Classics.
- Society for Creative Anachronism (2024) SCA College of Arms Name Registries.
- Bullfinch, T. (1855 / Project Gutenberg) Bullfinch's Mythology.
- USPTO (2024) Trademark Electronic Search System (TESS).
