Random name generator

Realistic first, last and full names in nine locales — up to 100,000 at a time, generated in your browser and reproducible from a seed.

Generate names →All field types

What it generates

Three separate fields cover the usual shapes: First Name, Last Name and Full Name. Put all three in one schema and they stay consistent — the full name is the same person as the first and last name on that row, not a fourth independent draw.

first_name,last_name,full_name,email
Elena,Rossi,Elena Rossi,elena.rossi7@example.org
Marco,Schneider,Marco Schneider,marco_schneider@example.com
Aisha,Yılmaz,Aisha Yılmaz,aisha.yilmaz@example.net

That row coherence extends to Email Address: the local part is built from the same row's name, transliterated to ASCII. A fixture where elena.rossi7@example.org belongs to a row named "Marco Schneider" looks wrong the moment a human reads it, and that is exactly what tends to end up in a screenshot.

Locales

Every name field takes a locale option: any, en, es, de, it, tr, jp, in and ar. The default, any, draws from all of them, which is usually what you want — a name list that is 100% Anglo-American is a poor test of a system real people will use.

Pin a single locale when you are testing something locale-specific: sort order under a particular collation, a column width that has to survive longer German surnames, or a UI that has to render Turkish dotted and dotless i (İ, ı) without mangling them. Mixed-script names are one of the cheapest ways to find encoding bugs before a user does.

Names that break things

If the point of the fixture is to stress-test, generate the ordinary list first and then add the awkward cases by hand as a Custom List field. The categories worth having in every serious test set:

  • Apostrophes and hyphens — O'Brien, Sainte-Marie. These find SQL escaping bugs and over-eager input validation.
  • Non-ASCII characters — Yılmaz, Müller, Þórsdóttir. These find encoding and collation bugs.
  • Single-word names. Plenty of people have one. A required "last name" field is a design bug, not a data problem.
  • Very long names. Set your Full Name column against the real database limit and see what truncates.

The generator's own names are realistic rather than adversarial, which is the right default — you want most of your rows to look like ordinary data, with the edge cases added deliberately so a failure points at something specific.

Reproducing the same list

Type anything into the Seed field and the same seed plus the same schema produces byte-identical names every run, on every machine. That turns a name list into something you can reference in a test assertion instead of something you have to snapshot. Change the seed and you get a completely different list of the same shape — useful for checking that a test passes because the logic is right, not because it memorised one dataset.

Exporting

Names come out of every format the generator supports. CSV for spreadsheets and bulk loaders, JSON for frontend fixtures, SQL for a seed script that goes straight into Postgres or MySQL. Add phone numbers and addresses to the same schema and you have a full customer table rather than a name column.

Are these real people?

No. First and last names are drawn independently from public-domain name pools and recombined, so a generated full name is a combination, not a record. Any given combination could coincidentally match a living person — that is unavoidable with any name generator, including a hand-typed one — which is why the generated rows are for testing and demos rather than for anything that implies a real identity. The methodology page sets out what each field draws from.

Common questions

How many names can I generate at once?

Up to 100,000 rows per export. Generation runs in your browser, so the practical ceiling is your own machine rather than a server quota. For a larger list, export several times with different seeds and concatenate the files.

Can I get the same names again later?

Yes. Enter a seed before generating. The same seed and schema always produce the same names, in the same order, on any machine — which is what makes generated names safe to assert against in a test.

Do the email addresses match the names?

Yes. First Name, Last Name, Full Name and Email Address are coherent within a row: the email local part is built from that row's name, transliterated to ASCII.

Can I generate names for one country only?

Set the locale option on each name field to en, es, de, it, tr, jp, in or ar. Leave it at "any" to draw from all nine, which produces a more realistic mix for most applications.

Are the names safe to commit to a repository?

Yes. They are synthetic combinations from public-domain pools, not records about real people, and no value is derived from a customer database.

Related generators