Click the coin to flip
Results
No flips yet — give it a go!
Click the coin to flip
No flips yet — give it a go!
This free coin flip tool gives you an instant, unbiased heads or tails result, with no sign-up, no download, and no cookies required. Click the coin — or press Enter when it is focused — and the result appears immediately.
Unlike a physical coin, a virtual coin flip cannot be biased by grip, spin technique,
air resistance, or catching angle. Each flip is determined by Math.random(),
a pseudorandom number generator built into every modern browser, producing an independent
50/50 result every time. No result is remembered between flips, and no two flips
influence each other.
Enter any number from 1 to 1,000 in the count box beside the Flip button. Single flips play a short 0.5-second animation. Multi-flips play one continuous spin (capped at 1.5 seconds), then reveal all results at once. The running stats — total flips, heads count, and tails count — update the moment the animation ends.
Every flip is logged in the results panel. Once you have at least one result, the Download button becomes active. You can export your full session history as:
Results are held in memory only and are lost when you close or refresh the page. Download before you leave if you need to keep the data.
A fair coin has two equally likely outcomes on each flip: heads (H) or tails (T). The probability of each is exactly 0.5, or 50%. This is one of the simplest examples of a Bernoulli trial — an experiment with exactly two possible outcomes and a fixed probability.
Each flip is statistically independent of every other flip. This means the result of flip 1 has absolutely no influence on flip 2. A common misconception — sometimes called the Gambler's Fallacy — is that after a long run of heads, tails becomes more likely to "even things out." It does not. The coin has no memory. The probability of tails on the next flip is always exactly 50%, regardless of what came before.
Because each flip is independent, the probability of any exact sequence of n flips is (0.5)n. The table below shows probabilities for common numbers of flips:
| Flips (n) | Probability of all heads | Probability of all tails | Exact probability |
|---|---|---|---|
| 1 | 50% | 50% | 1 in 2 |
| 2 | 25% | 25% | 1 in 4 |
| 3 | 12.5% | 12.5% | 1 in 8 |
| 5 | 3.125% | 3.125% | 1 in 32 |
| 10 | ≈ 0.098% | ≈ 0.098% | 1 in 1,024 |
| 20 | ≈ 0.0001% | ≈ 0.0001% | 1 in 1,048,576 |
Over many flips, the observed proportion of heads and tails will tend to converge toward 50% each. This is the Law of Large Numbers. Try it yourself — flip 1,000 coins using the multi-flip mode and check the live stats. You will almost always see both counters within a few percentage points of 500. The more flips you do, the closer the ratio gets to the theoretical 50/50.
This does not mean the counts will be exactly equal. Random variation (known as standard deviation) means that in 1,000 flips, a difference of 20 or 30 between heads and tails is completely normal and expected.
For n flips of a fair coin, the standard deviation of the number of heads is
√(n × 0.25). For 100 flips, that is 5 — so getting between 45 and
55 heads is within one standard deviation and very common. Getting fewer than 40
or more than 60 heads in 100 flips would be unusual (more than two standard
deviations from the mean), occurring roughly 5% of the time.
A coin flip is one of the oldest and fairest methods of random selection. Here are some common situations where a virtual coin flip is genuinely useful:
Each flip uses Math.random(), which is a pseudorandom number generator
(PRNG) seeded by the browser using system entropy such as hardware timings. It is not
cryptographically secure, but it is entirely suitable for coin flips — the output is
statistically indistinguishable from a fair 50/50 split across large samples, and
there is no way to predict or influence the result. For everyday decisions, games,
and experiments, this is more than sufficient.
This site itself sets no cookies and stores nothing — no local storage, no session storage, no tracking. Your flip history exists only in the browser's memory for the current session and disappears when you close or refresh the page. Google AdSense (the ads on this page) may set its own cookies to personalise advertisements. See Google's Privacy Policy for details.
The multi-flip mode supports up to 1,000 flips in a single click. All results are calculated instantly; only the animation takes a moment. The results panel displays the most recent 120 flips to keep the page responsive, but your full history is retained in memory and available for download as JSON or CSV.
Short runs of apparent imbalance are completely normal. In 10 flips, getting 7 heads and 3 tails is not unusual — it happens roughly 12% of the time. The Law of Large Numbers says the ratio tends toward 50/50 only over many hundreds or thousands of flips. If you are seeing persistent imbalance over hundreds of flips, that would be surprising, but it can still occur by chance.
Yes. The site is fully responsive and works on any modern smartphone or tablet. The coin scales with your screen using a fluid size formula, and all controls are touch-friendly. No app download is needed — just open coin-flip.net in your mobile browser.
The JSON file contains a top-level object with two keys: summary
(an object with total, heads, and tails
counts) and flips (an array of objects, each with a flip
number and a result string of either "heads" or
"tails"). The array is in chronological order, with flip 1 first.
In practice, a virtual flip is likely fairer. Research has shown that physical coin flips are not perfectly 50/50 — a 2023 study by Bartoš et al. found a slight bias toward the side facing up before the flip, with the same side landing upward about 51% of the time on average. This is because the coin spends marginally more time rotating around one axis. A virtual coin has no physical properties to bias it, so each outcome is equally likely.
The site reads your operating system's colour scheme preference on each load using
prefers-color-scheme. It does not save a manual toggle choice between
sessions (since the site uses no storage). If you switch to light mode and then
return later, the site will revert to your OS preference.
Both methods are accepted as fair in most contexts, but they differ in important ways:
Click the die to roll
No rolls yet — give it a go!
This free dice roller lets you roll any standard die — d4, d6, d8, d10, d12,
d20, or d100 (percentile) — with a single click. No physical dice needed.
Every result is produced by Math.random(), giving each face an equal
probability on every roll, with no memory of previous rolls.
Click one of the die buttons (d4 through d100) to select the die you want. The large die display updates to show the selected type. Switching die type resets the results history so your stats always reflect a single die denomination.
Enter any number from 1 to 1,000 in the count box and click Roll (or click the die). All results are calculated instantly. For a single roll, a short animation plays. For multi-roll, a slightly longer animation runs, then all results appear together. The stats panel — total, min, max, sum, average, median, and mode — update the moment the animation ends.
Once you have at least one result, the Download button becomes active. Export as JSON (structured data with a summary and per-roll array) or CSV (one row per roll, plus a summary footer).
A fair die with n faces produces each value with equal probability of 1/n. A d6 gives each number (1–6) a 1-in-6 chance (~16.7%). A d20 gives each number (1–20) a 1-in-20 chance (5%). The more sides, the flatter the distribution.
The expected value (average result) of a single roll of a fair n-sided
die is (n + 1) / 2. For common dice:
| Die | Faces | Min | Max | Expected value |
|---|---|---|---|---|
| d4 | 4 | 1 | 4 | 2.5 |
| d6 | 6 | 1 | 6 | 3.5 |
| d8 | 8 | 1 | 8 | 4.5 |
| d10 | 10 | 1 | 10 | 5.5 |
| d12 | 12 | 1 | 12 | 6.5 |
| d20 | 20 | 1 | 20 | 10.5 |
| d100 | 100 | 1 | 100 | 50.5 |
Roll a single d6 and any value from 1 to 6 is equally likely. Roll two d6s and sum them — now 7 is the most likely result (1-in-6 chance) because there are more combinations that produce it. As you roll more dice and sum them, the distribution of the total shifts from flat (uniform) toward a bell curve — this is the Central Limit Theorem in action.
The probability of rolling a value ≥ k on a dn die is
(n − k + 1) / n. For example, on a d20, the chance of
rolling 15 or higher is (20 − 15 + 1) / 20 = 6/20 = 30%.
Common reasons to roll a virtual die:
Each roll uses Math.random(), a pseudorandom number generator
seeded by the browser's system entropy. The result for a dn die is
Math.floor(Math.random() * n) + 1, giving each face an equal
1/n probability. This is more than sufficient for games, decisions, and
statistical experiments.
A d100 (also called a percentile die) produces a number from 1 to 100. In tabletop RPGs, it is often used for percentage-based skill checks or random tables. Physically, it is usually represented by rolling two d10s — one for tens and one for units — but a virtual d100 simply picks a single value between 1 and 100 with equal probability.
Yes. When you switch from one die type to another (e.g. d6 to d20), the results list and all statistics are cleared automatically. This is by design — mixing results from different dice would make stats like min, max, and average meaningless.
The results panel shows: Total (number of rolls), Min (lowest value rolled), Max (highest), Sum (total of all values), Avg (arithmetic mean, to 2 decimal places), Median (middle value), and Mode (most frequently rolled value). All stats update live after each roll.
The JSON file contains a summary object (die type, total rolls,
min, max, sum, average) and a rolls array. Each entry in the
array has a roll number and a value. The array is
in chronological order, roll 1 first.
Not in a single results panel — switching die type clears the history. If you need results from multiple die types, roll each type, download the results, then switch. You can then combine the CSV or JSON files for analysis.