The oldest way to make someone else decide
"Pick a number between one and ten" is rarely a math question — it's a stand-in for a coin flip, a chore assignment, or who goes first. The trouble is the person doing the picking. Ask a room to name a number from 1 to 100 and the answers cluster around a small handful of favorites — 37 and 73 famously overrepresented — instead of spreading evenly across the hundred. People are bad at sounding random on purpose, even when they're trying.
This page removes the human from that step. Set a range with the tool above — or open one of the ready-made pages further down for a span people search for by name — and a cryptographically seeded draw returns a value with no opinion about which numbers "feel" more random. Round numbers, edge values, and everyone's favorite two-digit picks all land with the same odds as anything else in the range.
Jump to a ready-made range
Eight spans already have their own page, each pre-loaded so there's nothing to type, plus a short explanation of exactly how that span's odds work under the hood. Open one below, or set a custom range with the tool at the top of this page if the number you need isn't on the list.
Odds and discard rate, side by side
Every range below is built from the same rejection-sampling step, but the discard rate — how often a raw draw gets thrown away and redrawn — depends entirely on how close the span sits to a power of two. Here's the exact figure for each one:
| Range | Odds per value | Draws discarded |
|---|---|---|
| 1–2 | 50% | 0% — exact fit, one bit |
| 1–3 | 33.3% | 25% |
| 1–4 | 25% | 0% — exact fit, two bits |
| 1–5 | 20% | 37.5% |
| 1–6 | 16.7% | 25% |
| 1–10 | 10% | 37.5% |
| 1–20 | 5% | 37.5% |
| 1–100 | 1% | 21.9% |
A 0% discard rate means the span lines up exactly with a power of two — 2 and 4 both qualify — so every raw draw is usable immediately. Everything else redraws some fraction of the time; none of it is visible in practice, since the whole loop finishes in microseconds and only the accepted value is ever shown.
Or set your own range with the tool above
Min and Max accept any whole numbers, Count controls how many results a single press returns (1 to 100), and Allow Repeats decides whether the same number can come up twice. Uncheck it and the picker draws unique values with a Fisher-Yates shuffle instead of independent draws — useful for raffles, seating orders, or anywhere a repeat would be a problem rather than a feature.
If a single result with a running history is all you need, the plain Random Number Generator keeps your last ten draws on screen instead of clearing after each press. This page's picker is built for when you want more than one number back at once, with or without repeats.
How the draw stays unbiased
Every number on this page comes from crypto.getRandomValues(), the Web
Cryptography API's secure random source — not Math.random(). It pulls
entropy from the operating system rather than a predictable seed, and none of it is
computationally guessable.
Turning that entropy into "a number from 1 to N" without bias takes one more step called rejection sampling: raw random values that would skew the result toward the low end of the range get thrown away and redrawn, instead of being folded back in with a remainder operation. Each range page below spells out the exact discard rate for its own span — 1 to 5 tosses out a little over a third of raw draws, while 1 to 4 needs none at all. The full explanation, including why the naive modulo shortcut is biased, lives on the methodology page.
When a number isn't the right shape
If the choice is really just two options, a coin flip reads more naturally than typing 1 and 2. For picking one name out of a list rather than one number out of a range, Wheel of Names turns the same kind of draw into something you can watch happen. And for letters instead of digits, the random letter generator runs on the same cryptographic source across A–Z.
All randomization on Spinness uses crypto.getRandomValues() — the browser's cryptographic random source. Learn how our randomness works.
Frequently asked questions
What's the difference between this page and the Random Number Generator?
This page is built for pulling more than one number at a time, with an option to forbid duplicates. The Random Number Generator returns one integer per press and keeps a rolling history of your last ten results on screen instead of clearing after each draw.
Which page should I use for a simple two-way choice?
Either Pick a Number Between 1 and 2 or the Coin Flip tool — both return one of two outcomes with identical odds. Use whichever framing fits: numbers for a numbered choice, heads or tails for an actual coin-style decision.
Can I pick several numbers at once without repeats?
Yes. Raise Count above 1 and uncheck Allow Repeats, and the picker shuffles the whole range and returns that many distinct values — a Fisher-Yates shuffle, not independent draws with duplicates thrown away afterward.
Why do 1 to 10 and 1 to 100 get their own pages instead of just this one?
Those spans get typed into search often enough on their own to deserve a page that loads with the range already set, plus a short explanation of exactly how the odds work for that specific span — the power-of-two shortcut for 1 to 4, the discard rate for 1 to 5, and so on. This page is the one to use for any range that is not on the list, or when you want more than one result back in a single press.
Is there a limit to how large a range can be?
With Allow Repeats checked, no — each press is an independent draw no matter how wide the range is. With it unchecked, the range tops out at 1,000,000 possible values, since drawing unique numbers means holding the whole range in memory to shuffle it.
Does anything I enter here get saved or sent anywhere?
No. The draw happens entirely in your browser and Spinness has no backend to receive it — closing the tab clears everything, including your min, max, and results.