Generate 10 random names in one go

    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.

    10 names, all distinct, drawn from every regional set at once so the batch looks like a real population rather than one tidy country. They come back as plain lines with no markup, which is what pastes cleanly into a seed file. The panel shows what fraction of the available pool this run used, and the notes say plainly whether a batch this size can stay distinct at all.

    Parameters

    Enter data for calculations

    Six regions, or all of them at once

    Which set of given names to draw from

    How much of a name you need

    The same names, written three ways

    From 1 to 100

    All distinct, or let them collide

    Any word makes the run repeatable

    Form progress0 / 5 fields

    💡 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.

    Quick start. Leave everything as it is, type anything at all into the seed field, and press the button. You get ten names in natural order from the English set. The seed is the part worth doing: with one, the same settings give you back the identical list next week, which is what a fixture needs. Without one, every run is different and yesterday's failing test cannot be reproduced.

    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

    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.
    6. 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.
    7. Seed - any word. Same word, same list, every time.
    8. 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

    A database seed that has to survive a rerun.
    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.
    Screenshots and documentation.
    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.
    Finding out what your form does to an apostrophe.
    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.
    Checking a column width before a migration.
    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.
    Account names for a demo environment.
    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.
    Testing the duplicate handling you swear you wrote.
    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

    Are these real people?
    No. The lists hold ordinary given names and ordinary family names, and the two are combined at random. With names this common a combination will inevitably match somebody somewhere, in the same way that Anna Novak matches somebody, but nothing here is drawn from a record of any person and no combination is looked up anywhere. Use them for fixtures, examples and screenshots, not as stand ins for anyone in particular.
    Where did the lists come from, and are they ranked?
    They are curated by hand, one set per region, and they are not ranked. There is no claim here that a name ranks twelfth anywhere, because a ranking is a figure taken from a civil registry and no registry was consulted. What the sets are is plausible and ordinary for their region, which is what seed data needs. If you need names weighted by real frequency, this is the wrong tool and a national statistics office is the right one.
    What exactly does the seed do?
    It replaces the clock. The generator runs on a small deterministic algorithm whose starting state is derived from whatever you type, so the same word with the same settings walks the same path through the lists and returns the identical names. Change one character of the seed and the list is unrelated. Change a setting and the list changes too, which is worth remembering: the seed pins the randomness, not the output.
    Is the draw actually even, or does it favor part of the list?
    Even, and it was measured rather than assumed. Four thousand draws from a pool of twenty four names give a chi-square statistic of 23.53 against a flat expectation, where the statistic has an expected value of 23 and would have to exceed 49.73 before uniformity became doubtful. A short run still clumps, because short runs of anything random do, and three of the same given name in eight rows is bad luck rather than a broken generator. The check runs with the test suite, so a change to the algorithm has to keep passing it.
    Why did I get fewer names than I asked for?
    Because distinct was on and the pool ran out. Asking for a hundred distinct given names from a set that holds thirty eight cannot be done, so the run stops at thirty eight and says so rather than padding the list with repeats you did not ask for. Either allow repeats, add family names to widen the pool, or switch to the mixed set, which builds 34 780 different full names.
    Can two different names produce the same handle?
    Yes, and this is worth knowing before handles become logins. Folding to ASCII drops information: a name with an accent and the same name without one fold to the same string, and the eszett becomes ss. So two rows that are visibly different people can collide once they reach a username field. The distinct setting compares the full names, not the folded handles, which is the honest behavior but not always the one you want. If handles have to be unique, check them after folding.
    What does the mixed set actually mix?
    Given names and family names are drawn independently from all six sets, so you get combinations like a Spanish given name with a Nordic family name. That is not an error. It is what the population of any city looks like after one generation of migration, and seed data made only of tidy same origin pairs quietly hides bugs that appear the moment a real customer does not match the pattern.
    Is a middle name ever the same as the first name?
    No. The middle name is drawn from the same pool as the given name and redrawn if it lands on the same word, so you never get Thomas Thomas Newton. The pool arithmetic accounts for this too: a three part count is not simply the given name count cubed, because the two given names come from the same side of the set and cannot be equal.

    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

    Generator verified by the LiczGrupa.pl team

    Content, formulas and results have been reviewed for accuracy and relevance by our team of specialists.

    Patryk Matyjasik

    Reviewed by: Patryk Matyjasik