How fairness works
The race is a show. The draw is math.
Duck Race Derby is a random picker dressed as a duck race. The winner, and every other place, is decided once, at the moment you press Start, before a single duck moves. Everything you watch afterward is an animation of a result that already exists.
What happens when you press Start
- The field is fixed. The draw takes the list of entrants exactly as it stands. Names, looks, lane order, the course, and any duck you've pinned are not inputs.
- Random numbers come from your browser's cryptographic generator. The draw uses
crypto.getRandomValuesfrom the Web Crypto API, the same source browsers use for security keys. It never usesMath.random(), the clock, or animation timing to choose a winner. - The full order is shuffled without bias. A Fisher-Yates shuffle puts every entrant in a random finishing position. Each step picks a whole number by rejection sampling: random values that would make some outcomes slightly more likely are thrown away and drawn again. With 7 entrants, every entrant has exactly a 1 in 7 chance of winning, and the same chance of finishing in any other place.
- The animation is planned around that result. Each duck gets its own pace: surges, fades, and a late kick. The plan is built so the ducks cross the line in the drawn order, and so the eventual winner doesn't simply lead from the gate. Plans where the winner leads more than half the race are thrown out and replanned.
- The board and the ducks read the same data. The position board and the course are drawn from one timeline, so they never disagree. If you switch tabs mid-race, the race keeps its clock and both catch up together when you come back.
What can't influence the result
| Thing you can change | Effect on who wins |
|---|---|
| Duck colors, patterns, and accessories | None. Every look shares one silhouette and size. |
| Lane and list order | None. The shuffle is uniform no matter where an entrant starts. |
| Race number | None. |
| Course and race length | None. They change the scenery and how long the show lasts. |
| Spotlighting or pinning a duck | None. It only changes what is drawn on screen. |
| Stopping a race | The run is canceled and records no winner. The next race is a fresh draw. |
| Skipping to the result | None. It shows the result that was already drawn. |
There is no setting, hidden or otherwise, for choosing a winner. Race files and setup links carry the lineup and settings, never a result.
Checking it yourself
Duck Race Derby's automated test suite runs more than 100,000 simulated draws for fields of 2, 5, 10, and 30 entrants and checks the win counts against a chi-square test for uniformity. They also confirm that changing every duck's look and the course leaves the draw unchanged for the same random input, and that the animated finish always matches the drawn order.
For a quick check of your own, race the same three names thirty times. You'll see streaks (randomness is lumpy in small samples), but over hundreds of races each name wins about a third of the time.
What a browser race can't prove
The public race runs on the host's own device. That makes it fast and private, and it means the proof is only as good as the host. Duck Race Derby shows the number of entrants, the full finishing order, and the time the race finished, but it cannot stop someone from editing a screenshot, changing the page with developer tools, or quietly re-running a race until they like the result.
For a classroom or a team meeting, where everyone watches the same screen, that is usually enough. If the people relying on the result need more than "we all saw it," a local race isn't the right tool.
How hosted events will be different
For hosted organization events, which are not available yet, the draw moves to our server. The server records the result permanently before the race is shown, sends every audience device the same race with a shared start time, and refuses to draw twice for the same race, even if Start is pressed twice or a connection drops. Canceled races can't claim a winner, and each event keeps an append-only record of what happened.
Even then, Duck Race Derby is not a certified raffle or lottery system. If your race involves paid tickets, donations, or regulated prizes, check the rules where you are before you run it.
See it for yourself
Paste a list, press Start, and watch a fair draw play out as a race.