Random Duck Race Play now
Prove it yourself

Is the duck race fair? Test it.

This page runs the very same race physics the game uses — thousands of races, right in your browser — and counts who wins. Every duck should win about equally often.

The fairness test

Choose the field and press Start. Nothing is sent anywhere — every race runs in your browser.

How the test works

Each simulated race is set up exactly the way the game sets up a real one with its default settings, using the game’s own race physics file — the very same code that moves the ducks on screen:

  • the ducks are numbered 1, 2, 3… in the order of the list, just like the names you type;
  • their lanes on the start line are drawn at random, as in every real race;
  • each duck gets the same random personal rhythm the game gives it (how it rides the waves), and the river’s currents, rapids and slipstreams are exactly the game’s;
  • which lanes a rapid favours is drawn again for every race, so there is no lucky lane to learn;
  • the race runs in the same 1/120-second steps until the first duck crosses the line — that duck is counted as the winner.

The only thing skipped is drawing the race on screen, which is why thousands of races take seconds instead of hours.

How to read the results

In a fair race every duck should win about 1 time in N — 12.5% each with 8 ducks. The gold line on each bar marks that expected share. Over a few thousand races the bars will never be perfectly level: a duck might win 12.1% and another 12.9%, just as ten coin flips rarely land exactly five heads.

So the test also runs a chi-square goodness-of-fit test. It asks: “if every duck really had the same chance, how often would the wins be spread at least this unevenly just by luck?” That probability is the p-value. A p-value above 0.05 means the result is exactly what equal chances look like. In a perfectly fair game, about 1 run in 20 still dips below 0.05 by pure chance — run it again and it disappears.

What we found

Over tens of thousands of races, the position of a name in the list makes no difference: every duck wins its fair share, and the chi-square test finds nothing but chance. Lanes are drawn at random for every race, the river doesn’t know the names, and nothing ever steers a duck towards the finish — so every name in your list has exactly the same chance to win.

Seeing the same name win twice in a row? That’s randomness too — each race starts fresh, with no memory of the last one. More answers in the FAQ.