HEADS · TAILS · DECIDE

Coin Flip

Tap the coin or press Space. The result is selected first with browser Web Crypto, then the animation reveals it.

50/50balanced mapping
Web Cryptono Math.random fallback
localhistory stays here
FLIP NOW

One decision. One tap.

RESULTReady

Tap the coin, use the button, or press Space.

Total0
Heads00%
Tails00%
Current streak0—
Longest streak0—
Balance snapshot—needs flips
RECENT HISTORY

Last 20 outcomes

No flips yet.

Customize the two choices
Decision series—
PROBABILITY LAB

Know the odds before the streak feels suspicious

probability24.609%

Exactly 5 heads in 10 fair flips.

simulation snapshot—Uses the same browser Web Crypto source.
chance the first n flips are all the same side6.25%Either all Heads or all Tails.
WHAT MATTERS

Fast enough for a decision, transparent enough for a lesson

1

The outcome is chosen before motion

The spin is presentation only. Turning animation off through reduced-motion settings does not change the selected side.

2

Short runs do not need to look 50/50

Independent fair flips naturally create streaks. Ten flips can look lopsided without implying bias.

3

Custom labels stay binary

Rename the two sides to Yes/No or two teams; each still receives exactly half of the byte values used by the mapper.

Randomness method, exact mapping & limitations

Method

Each result requests a byte from crypto.getRandomValues(). Even byte values map to Choice 1 and odd byte values map to Choice 2. A byte has 128 even and 128 odd values, so the mapping itself is exactly balanced.

No silent fallback

If Web Crypto is unavailable, flipping is disabled rather than silently switching to Math.random().

Scope

This is browser cryptographic pseudo-randomness for everyday decisions, games, and probability learning. It is not atmospheric physical randomness, an independently audited draw, or evidence suitable for legal, gambling, prize, or other high-stakes outcomes.

Local session

Recent outcomes and custom labels are stored in this browser only so a refresh can keep your session. Reset removes the saved session.