How the little race works
The animals tell the story. Your browser makes the random draw.
One entry, one chance
Every non-empty line in the list becomes an entry with its own number. At the start of a race, the browser generates a complete finishing order using a Fisher–Yates shuffle. The random integers come from Web Crypto’s crypto.getRandomValues, with rejection sampling to avoid modulo bias.
Each entry has a 1 in N chance of being first, where N is the number of entries. A name entered twice has two entries and therefore two chances. Use one entry per person when you want equal chances per person.
The race reveals the order
The draw happens before the countdown. The animation adds little surges and changes in position, then reveals that order at the finish. Animal type, lane, name length, screen size and timer length do not change the result.
Picking without replacement
After a race, “Remove winner” removes the specific winning entry from your current list. Start another race to draw a fresh order among the remaining entries. Closing the result or choosing “Race again” keeps everyone in the list.
Privacy and control
Names are processed in this browser. No account or server-side list storage is required. Optional remembered lists use local storage on your device. Clearing the list removes the saved list; clearing browser site data removes it too. The list is not included in shared page links.
What the tool is designed for
Use it for friendly decisions, classroom turns and presentation order. Results copied from the browser are a convenient record, not an independently verified or tamper-proof certificate.
Try an animal race ↗