Random name
A name drawn uniformly from all 24,204 that have a page here — not by picking a letter and then a name within it, which would make an X name nineteen times too likely. Nothing you type here leaves your browser — it is worked out on your own device, so there is nothing to send and nothing to log.
These are the names with a page on this site, which is narrower than “names”. Sixteen national registers, each suppressing names given to too few babies, with spellings grouped under the commonest. A name missing here is not a name nobody uses.
Pick a letter, then a name, and X becomes nineteen times too likely
This is the obvious way to draw a name from a list split into twenty-six files: pick a letter at random, load that file, pick a name from it. It is also badly wrong, and the size of the error is easy to miss because both steps look uniform.
The letters are nothing like equal. A has 2,340 names here and X has 48 — a spread of 49×. Give every letter the same one-in-twenty-six chance and each X name inherits a forty-eighth of it, while each A name gets a two-thousand-three-hundred-and-fortieth.
Worked through: an X name comes up 19.4 times more often than it should, and an A name 2.5 times less. The table under your names has the real figures, counted from the list this page loaded rather than quoted from here.
There are two honest fixes. Weight the first draw by how many names each letter holds — then it is exactly uniform and you still load only one file. Or do not split the draw at all, which is what this page does. The whole list — every name and the address of its page — is 115 KB compressed, which is less than one photograph, so there is nothing to be gained by being clever.
Names alone would have been 60 KB, and the
address could in principle be folded out of the name. It cannot,
quite: 133 of the 24,204 addresses do not survive
the fold. Polish ł and Scandinavian ø do not decompose,
and the page for Con lives at
/name/con while its folder is con-page
— because CON is a DOS device name Windows will not allow as
a folder. No rule would have guessed that, so both are stored.
These are not all the names there are
This matters more than the arithmetic. The list is the names that earned a page on this site, which is a narrower thing than “names” in three ways:
- Sixteen national registers, mostly European plus the United States, Canada and Argentina. A name common in Nigeria, India or Indonesia and rare in those sixteen is not here.
- A frequency threshold. Registers suppress rare names to protect the people who have them — the US Social Security Administration publishes nothing given to fewer than five babies in a year. A name absent here is not a name nobody used.
- Spellings are grouped. A page leads with the commonest spelling, so variants sit behind it rather than beside it in this list.
So this is a uniform draw from a specific, documented set — not a random human name, and not a representative one. What these registers leave out goes through it properly.
Where the randomness comes from
One index per name from
crypto.getRandomValues(), drawn across the whole pool
at once with the uneven tail of the range rejected — so no
letter and no position in the list is favoured. Not
Math.random(), and if the source is missing this page
produces nothing.
The names and their links are read from the pages themselves when the list is built, so the name shown here is exactly the name on the page it links to. It is not title-cased from the address, which would turn Tommy-Lee into Tommylee.