Coin Flip
Flip a virtual coin one or more times and see instant results with head/tail statistics.
Heads ratio over time
How It Works
The Coin Flip generates fair head/tail outcomes using cryptographically secure randomness from your browser’s crypto.getRandomValues — the same source used for TLS keys and password generation. Each flip pulls one random bit and maps it to heads or tails, giving a true 50/50 probability that no streak or seed can bias. Flip a single coin for a quick decision, or set the count higher (up to several thousand) and the tool runs every flip and reports the breakdown — useful for visualising probability convergence: 10 flips can easily land 7-3, but 1,000 will sit very close to 500-500. The result of each flip is shown alongside a running total of heads and tails counts, so you can confirm fairness empirically. There is no animation, no fake delay, no analytics tracking — just an instant honest answer, ready when you need a tie-breaker. Flipping runs entirely in your browser, the result exists only in the page, and the random source is genuinely unbiased.
Use Cases
- Making a fair binary decision between two options
- Settling a tie-breaker in a game
- Teaching probability with a large number of flips
- Running a quick random yes/no decision
Frequently Asked Questions
- Is the coin really fair?
- Yes — bits come from crypto.getRandomValues, which is backed by the OS secure random source. Each flip is statistically independent and equally likely to be heads or tails.
- Why did I get six tails in a row?
- Streaks happen — over many flips, runs of equal results appear about as often as a fair coin would predict. Try 1,000 flips and you will see the totals converge to roughly 500-500.
- Can I bias the result?
- No — there is no input that affects the outcome. Each flip is independent.
- Is my result logged anywhere?
- No. Flips happen in your browser and the outcome exists only in the current page.
- Why use this instead of Math.random?
- Math.random is a non-cryptographic PRNG that some environments seed predictably. crypto.getRandomValues is cryptographically secure and unbiased, which is the right choice when fairness matters.