Is the coin toss fair?
A plain-English look at how the site generates a balanced digital result, and what that does and does not prove.
Randomness in this tool
The coin-toss tool uses the browser's Web Crypto API, specifically crypto.getRandomValues(). This describes the implementation; it is not an independent guarantee about the browser, device, or delivered page.
What the API provides
The API supplies cryptographically strong random values through the browser. The site maps those values to an outcome; the API does not make the page a certified randomness or security service.
How We Process The Result
For a regular toss, the script requests one 32-bit value from the browser and uses its parity: even values become Heads and odd values become Tails. The probability lab uses random bytes in the same even/odd way.
const value = new Uint32Array(1);
crypto.getRandomValues(value);
const side = value[0] % 2; // 0 for Heads, 1 for Tails
The even/odd mapping divides the possible integer values equally between the two sides. This describes the code's mapping, not a guarantee about every part of the browser or device.
Physical Coin Bias
Physical tosses depend on how a coin is launched and caught. The cited studies report a tendency to land on the starting face in the methods they examined; their measurements should not be treated as a universal probability for every coin or toss.
The digital tool does not model a physical coin's weight or flight. It maps the parity of a value supplied by the browser's randomness API to Heads or Tails.
Verifying Fairness
The toss decision is made in the browser and the mapping can be inspected in the delivered script. The main tool sends the outcome side, mode, and coin preset to the site's statistics endpoint; for a best-of-three, that outcome is the series winner. This is not a cryptographic audit service.
A sample of flips can illustrate variation, but no finite sample proves that a generator is fair. Statistical tests can flag some departures from an expected distribution; they cannot establish trust in the browser, device, or page.