A first name introduces a character, but the last name hints at family, history, and place. This last name generator gives you a steady stream of surnames you can pair with any first name, drawing on patterns from common everyday names to richer, more distinctive options. Use it for novels, short stories, screenplays, tabletop campaigns, video game NPCs, or quick worldbuilding notes. Generate a batch, scan for the ones that match your character's background, and keep a shortlist for whenever a new face joins the cast.
Surnames carry weight that first names cannot. They suggest where a family came from, what they did for a living generations ago, and how they fit into the social world of your story. A baker named Miller, a scholar named Ashford, and a soldier named Cross all feel grounded because their surnames quietly do extra work for the writer.
Where this generator fits in
Novels and short stories: Cast main characters, side characters, and walk-ons.
Screenplays and scripts: Fill out crowd scenes and minor roles fast.
Tabletop role-playing: Name NPCs, shopkeepers, and rival adventurers on the fly.
Video game design: Build believable rosters of townsfolk and questgivers.
Worldbuilding: Develop noble houses, clans, or family trees.
How to choose the right surname
Match the sound and origin of the last name to the world you are building. A gritty crime drama and a high fantasy court need very different surnames, even if both stories use English. Watch out for accidental jokes, unfortunate initials, and last names that sound too close to those of real public figures. Reading the full name out loud catches most of these problems immediately.
Tips for writers and game masters
Keep a running document of surnames you like, sorted by region, class, or family. When a new character walks on stage, you can grab a name in seconds instead of breaking your writing flow. Reuse family names intentionally to suggest cousins, dynasties, or rivalries, and vary the rhythm of first and last names so your cast does not start to blur together on the page.
Anchoring Your Lineage
Searching for that perfect surname? Ask yourself:
Does the name hint at a trade or origin (e.g. Baker, Rivers)?
Do I want it to sound contemporary or historical?
Should it evoke a specific culture or region?
Will it complement the character’s first name in rhythm and tone?
Could a slight tweak make it more unique?
Last Name FAQs
Curious how our surname engine works? Check below:
How does the Last Name Generator work?
It draws from diverse surname lists spanning cultures and eras, mixing patterns for authentic-sounding family names.
Can I filter by origin or language?
Not at the moment; regenerate until you land a name that fits your desired cultural or linguistic vibe.
Are these real surnames?
Most are authentic or plausible surnames, but double-check if you need a name with verified historical usage.
How many names can I generate?
Unlimited-click “Generate” as often as you like to explore the full breadth of possibilities.
How do I copy or save my favorites?
Click the name to copy it instantly, or click the heart icon to add it to your favorites for later.
What are good last names?
There's thousands of random last names in this generator. Here are some samples to start:
Carr
Boone
Avery
Bautista
Colon
Vasquez
Valencia
Mccarthy
Davis
Ayers
About the creator
All idea generators and writing tools on The Story Shack are carefully crafted by storyteller and developer Martin Hooijmans. During the day I work on tech solutions. In my free hours I love diving into stories, be it reading, writing, gaming, roleplaying, you name it, I probably enjoy it. The Story Shack is my way of giving back to the global storytelling community. It's a huge creative outlet where I love bringing my ideas to life. Thanks for coming by, and if you enjoyed this tool, make sure you check out a few more!
Embed on your website
To embed this idea generator on your website, copy and paste the following code where you want the widget to appear:
<div id="story-shack-widget"></div>
<script src="https://widget.thestoryshack.com/embed.js"></script>
<script>
new StoryShackWidget('#story-shack-widget', {
generatorId: 'last-name-generator',
generatorName: 'Last Name Generator',
generatorUrl: 'https://thestoryshack.com/tools/last-name-generator/',
language: 'en'
});
</script>
No ads, more features
If you enjoy The Story Shack, will you support my work with a small tip?
PayPal, credit card and many local payment options accepted.