gizmobench

Random City Picker

Forty world cities are already in the box on this page, spread across every inhabited continent rather than taken off the top of a population table, which would have been most of one region. Press Pick and one is drawn. Set aside is on, so a city that has come up leaves the pool: draw forty times and you have every city once, in a random order.

The pick0 of 40 in the pool

Ready

Pool
0 of 40
Pick count
Picked name

Every name has been set aside. Reset the pool to draw from the whole list again.

Press Space to pick without reaching for the mouse. Names are separated by line breaks and by commas, so a column pasted from a spreadsheet and a comma list both work. Editing the list rebuilds the pool and clears the draws, and Reset pool puts every name back and clears the draws without touching the list.

The spin decides nothing. The winner is drawn from crypto.getRandomValues the moment you press Pick, and the names that flick past afterwards are frames built to end on it. Watching it cannot change who came out. Each name in the pool has the same chance on every draw: the index is taken by rejection sampling rather than a remainder, so no position in your list is favoured. A name typed twice is two entries in the pool, which is how you give someone two chances, and the Names header counts the repeats so it is never a surprise.
Accuracy. Each name has the same chance on every draw, from the browser's cryptographic generator. With 'set aside' on, a picked name is removed from the pool so later draws come from the rest.

Common questions

Which cities are in the list?
Forty, chosen for spread rather than for size, with Africa, Asia, the Middle East, Europe, North America, South America and Oceania all represented and no continent left out. They are written into the tool itself, so the list is the same for everyone and works with no connection.
Can I use my own list of cities?
Yes. Edit the box, or paste your own list over it, one city per line or separated by commas. A column copied out of a spreadsheet pastes straight in. Changing the list rebuilds the pool and clears the draws made from the old one.
Can I stop a city coming up twice?
That is already how this page opens: Set aside removes a drawn city from the pool. Switch to Keep in pool if you want independent draws where the same city can win again.
Can I draw a shortlist of several cities at once?
Raise the Pick count. With Set aside on, the cities drawn together are always different from one another, and every group of that size is equally likely. The draws are listed under the stage, up to a hundred of them, and there is a button to copy them all as plain text.
Is the draw fair?
Each city has the same chance on every draw, from crypto.getRandomValues rather than Math.random, with the index taken by rejection sampling so no position in the list is favoured. The reveal that flicks through the names is built after the winner has been chosen, so nothing you see can change it.

Each name has the same chance on every draw, from the browser's cryptographic generator. With 'set aside' on, a picked name is removed from the pool so later draws come from the rest.