Seed it with any word and the same list comes back tomorrow. Six regional sets, given, middle and family names, lowercase handles, and a count of how many distinct names the pool holds.
Random names from the celtic set
Seed it with any word and the same list comes back tomorrow. Six regional sets, given, middle and family names, lowercase handles, and a count of how many distinct names the pool holds.
Ten names drawn from the celtic set, given name and family name, ready to paste into a fixture. The panel underneath reports how many distinct names this set can build in total, which matters more than it looks: a run of twenty five from a pool of about a thousand repeats itself more often than intuition suggests. Change the count, the output form or the set itself below, and add a seed if you need the same list back tomorrow.
Parameters
Enter data for calculations
💡 Fill in all required fields to unlock the calculate button
Names for the rows you have not written yet
Half the seed data in the world is called Test User, and the other half is called asdf. Both work until something real happens to them: a name with an apostrophe breaks a query, a column sized for eight characters meets a Scandinavian surname, and a screenshot of the staging environment goes to a client with Test User 47 in it. Plausible names are not decoration, they are the only version of the data that finds those problems before a customer does.
Six regional sets, one to a hundred names at a time, three output shapes, and an arithmetic panel that tells you how many distinct names the chosen pool can even produce. That last number matters more than it sounds, and there is a section below about why.
Start at the top and stop when it looks right
- Name set - six regions, or mixed. Mixed draws given names and family names from all six independently, so it produces combinations like a real immigrant population rather than six tidy blocks.
- Given names - feminine, masculine, or both. With both, each row picks a side first, and the family name is then made to agree where the language requires it.
- Name parts - given only, given and family, or given, middle and family. The middle name is drawn from the same pool as the first and is never the same word.
- Output shape - natural order, sorted with the family name first, or a lowercase handle. The handle is folded to plain ASCII, which is where accents and apostrophes go.
- How many - 1 to 100. Anything outside that is pulled to the nearest end rather than refused, so a stray zero does not cost you the run.
- Repeats - all distinct, or allow them. Allowing repeats is the honest setting when you are testing what happens to two customers with the same name, which is a thing that occurs constantly in real data and almost never in seed data.
- Seed - any word. Same word, same list, every time.
- Check the pool panel before you paste. If you asked for a large fraction of what the pool can build, expect repeats even with distinct switched on.
Six situations, and what to set for each
Set a seed, choose distinct, ask for as many rows as you need. The point is not the names, it is that a test which failed on row 47 today fails on row 47 tomorrow. Without a seed, the row that broke is gone the moment you rerun the fixture.
Natural order, ten to twenty names, mixed set. Real looking names make a screenshot readable in a way that Test User 1 through 20 never does, and a mixed set stops the illustration from implying the product only serves one country.
Irish and Scottish, natural order. Roughly one family name in twelve there carries an apostrophe, and O'Connor is the value that finds the query somebody built by concatenating strings. Switch the shape to handle and the same name comes back oconnor, which is the other half of the answer.
Nordic or German, three part names, a hundred rows. The longest thing this can produce is well past what a column sized for a short English name will take, and finding that out in staging is free.
Handle shape, distinct, seeded. You get petra.gunther and einar.sundstrom, already folded to the characters a login field will accept, from names that still read as people in the interface.
Allow repeats, ask for fifty from a small set. The report counts the collisions for you, so you know how many the code should have caught before you go looking at why it caught none.
What the six sets hold, and how far they stretch
Every set is a curated list of ordinary names, and the last column is the one people skip. It is the number of different full names the set can build, and asking for a meaningful fraction of it is where distinct output starts costing you variety.
| Set | Given names | Family names | Distinct full names | Carries |
|---|---|---|---|---|
| English (US and UK) | 48 | 25 | 1200 | Plain ASCII throughout |
| Irish and Scottish | 37 | 25 | 925 | Apostrophes, and Mac and Mc prefixes |
| Spanish and Latin American | 40 | 25 | 1000 | Acute accents on vowels |
| German | 36 | 25 | 900 | Umlauts and the eszett |
| Nordic | 36 | 25 | 900 | Slashed o, ring above a, diaeresis |
| Polish | 38 | 23 | 874 | Stroked l, nasals, and surnames that change form |
| Mixed international | 235 | 148 | 34 780 | Everything above, in every combination |
Now the arithmetic people get wrong. Drawing 25 names from a pool of 1200 looks safe, and the chance of at least one repeat is 22.3 percent. At 100 names from the same pool it is 98.6 percent, so a run of a hundred that happens to contain no repeats is the surprising outcome, not the expected one. This is the birthday problem wearing a different hat, and it is why the distinct switch exists and why the pool panel puts the number in front of you. Switch to the mixed set and the same 25 names carry a 0.9 percent chance of colliding.
The second table is the same drawn name in each output shape, which is also the fastest way to see where characters are lost.
| Drawn name | Natural | Sorted | Handle |
|---|---|---|---|
| German, feminine | Petra Günther | Günther, Petra | petra.gunther |
| Nordic, masculine | Einar Sundström | Sundström, Einar | einar.sundstrom |
| Irish, masculine | Declan O’Connor | O’Connor, Declan | declan.oconnor |
| Polish, feminine | Zofia Kamińska | Kamińska, Zofia | zofia.kaminska |
| Polish, masculine | Zbigniew Kamiński | Kamiński, Zbigniew | zbigniew.kaminski |
The last two rows are the same family name. Kamiński and Kamińska are not two surnames, they are the masculine and feminine forms of one, and the ending changes with the person carrying it. A generator that pairs a feminine given name with the masculine form produces something a Polish reader spots instantly, which is exactly the wrong quality in data meant to look real. The rule applies to family names ending in ski, cki and dzki, and it is left alone everywhere else, so a Nordic or German family name is never touched by it.
Things worth knowing about these names
Related tools
URL Slug Generator
The same ASCII folding these handles use, applied to titles instead of people, with the collisions reported - Open the tool
CSS Gradient Generator
The background these names sit on in the demo, with the text contrast checked all the way across - Open the tool
Nickname Generator
Invented handles rather than plausible people, for when the point is a pseudonym and not a record - Open the tool
Business Name Generator
Company names for the accounts these people belong to in the same fixture - Open the tool
UUID Generator
Primary keys for the rows, in a version that sorts by insertion time - Open the tool
Lorem Ipsum Generator
Filler prose to go in the columns beside the names, measured rather than guessed - Open the tool
Table Generator
Wraps the finished list into Markdown, HTML or a CSV block for wherever it has to land - Open the tool
See also
Generator verified by the LiczGrupa.pl team
Content, formulas and results have been reviewed for accuracy and relevance by our team of specialists.

Reviewed by: Patryk Matyjasik