We generate a Mega Millions or Powerball pick just for you — and give you a cryptographic receipt proving we couldn't have rigged it.
Before you picked, we published SHA-256(server_seed) — a fingerprint of a secret we can no longer change. Your numbers come from HMAC-SHA256(server_seed, "{your seed}:{nonce}"). When we retire the secret, we reveal it — then anyone can re-run the math and confirm your pick. Nothing up our sleeve.
Your numbers are copied. Open your state's official lottery site and paste them in.
No number is ever “due”. Draws are independent, so nothing here changes anyone's odds of winning — this is a transparent way to pick, not an edge. What we can promise is that the pick was fair and that we couldn't have changed it afterwards.
Every ball starts with a weight of 1 / (times drawn + 2) over the history window. A ball drawn often gets a smaller slice; one drawn rarely gets a larger one. That single rule sets the base rate for every ticket in the set — everything below only nudges it.
The + 2 stops a never-drawn ball taking an unbounded share, and stops the arithmetic dividing by zero.
Of the five million combinations in a set:
62.5%25%12.5%A lift is a multiplier (strength α, typically 0.30), never a replacement: a prime that runs hot in August but has also been drawn constantly still ends up with a modest slice, because frequency set its base first.
Balls are drawn without replacement inside a ticket, so no ticket repeats a number. Each shard also discards its first 10,000 tickets — that burn-in clears the opening transient where the coldest balls are over-favoured before the draw settles.
All five million are committed to one Merkle root and timestamped into Bitcoin days before the draw they target. Change a single combination and the root changes, so the set you are proved a member of is provably the set that existed beforehand. Your own pick is HMAC-SHA256(server_seed, "client_seed:nonce") — an index into that committed set, which you can re-derive yourself once the seed is revealed.
Each set is millions of generated combinations, committed and anchored to Bitcoin. Pick a set to see the real winning number, whether it landed in our millions, and how the numbers were distributed.
Every pick you get is provably fair — the math is fixed before you play, and you can check it yourself afterward. No trust in us required.
server_seed and publish its fingerprint, SHA-256(server_seed). That fingerprint is on the record and can't be changed — you can read it any time at /fair/current.
client_seed). Because your input is mixed in after we've committed, we can't have pre-computed a result to steer you toward.
HMAC-SHA256(server_seed, "{client_seed}:{nonce}"). The output is turned into distinct white balls with a Fisher–Yates shuffle and an unbiased special ball — the same math for everyone, every time.
server_seed. Anyone can confirm SHA-256(revealed) == published_hash and re-run the derivation. Our Verify tab does it in your browser; you could also do it offline.
We publish a set of five million generated combinations. The real jackpot odds are about 1 in 302,000,000. Any single pick is still an astronomically long shot at the real jackpot — a large set simply covers more ground than one hand-picked line. FairPick makes no claim to improve your odds of winning a real lottery, and no method can.
ticket = FisherYates( HMAC-SHA256( server_seed, client_seed + ":" + nonce ) ) commitment = SHA-256( server_seed ) // published before you play← Back to FairPick
Yes — and it's verifiable. We publish SHA-256(server_seed) before you play, derive numbers with HMAC-SHA256, and reveal the seed when it retires so anyone can re-run the math. See How it works.
No. Real jackpot odds are roughly 1 in 302 million, and no picking method changes that. FairPick is for fun; it makes no prediction or edge claims.
No. FairPick generates and verifies numbers only. We're not affiliated with, endorsed by, or sponsored by any state lottery, Mega Millions, or Powerball. Any "buy a ticket" option links to a separate, licensed courier — read their terms.
Your client seed is an optional lucky word you add so the result depends on your input, not just ours. The nonce is a counter that increases with each pick, so every pick under the same seed is distinct and reproducible.
After a seed is revealed, go to the Verify tab, paste the revealed server_seed, your client seed, the nonce, and your numbers. It re-derives the ticket in your browser — you can also do it offline with any HMAC-SHA256 implementation.
We use it only to sign you in (a one-time code, no password) and to save your picks to your account. See our terms.
Yes — generating and verifying picks is free.
FairPick is meant to be fun. Lotteries are games of chance, not income. Please keep it in perspective.
If gambling is causing problems for you or someone you know, free, confidential help is available:
United States — National Problem Gambling Helpline: call or text 1-800-GAMBLER (1-800-426-2537), available 24/7.
Elsewhere — search for your national or regional problem-gambling helpline; most operate free, confidential services.
You must be of legal age to play the lottery in your jurisdiction (18+ or 21+ depending on where you live).
← Back to FairPickFairPick is an entertainment product that generates provably-fair lottery-style numbers and lets you verify them. It does not sell lottery tickets, does not accept wagers, and is not affiliated with, endorsed by, or sponsored by any state lottery, Mega Millions, or Powerball.
Numbers are for entertainment only. FairPick makes no claim that any pick improves your chance of winning anything. Real lottery odds are unaffected by using this site.
If a ticket-courier or advertising link appears, it points to a separate company with its own terms and privacy policy. FairPick isn't responsible for third-party services; review their terms before using them.
You must be of legal age to participate in lottery games where you live (18+ or 21+). See Responsible play.
← Back to FairPickEvery recent drawing, its winning numbers, and — where we committed a set before the draw — whether the winning combination was in our published millions. Tap Verify for a Merkle proof it wasn't tampered with.
Every server seed we've ever used. Each commitment SHA256(seed) is anchored to Bitcoin (OpenTimestamps) before any pick is made. When a seed is retired we reveal it, so anyone can re-derive its picks and check them against the anchored commitment — no trust required.
A pick rests on two independent proofs. (1) Membership — your numbers really are one of the millions in the published, committed set; checkable immediately, no secret needed. (2) Fair draw — the seed genuinely selected that one; checkable once the seed is revealed. Paste your receipt and tap Verify: proof 1 runs right away. For proof 2, tap Get revealed seed — your receipt's commitment is SHA256(server_seed), not the seed itself, and the raw seed stays secret until we rotate it.
A Merkle path from your exact numbers up to the published root of that set. Needs no secret — this one works the moment you get your pick.
Re-derives which candidate the seed selected. Only possible after that server seed is rotated out and revealed.