A number picker cheat sheet is a quick-reference summary of every control, limit, and output the picker exposes, so you can set bounds, request up to 1,000 integers, and choose whether duplicates are allowed without re-reading the instructions each time. The cheat sheet below describes Random Number Generator, which runs entirely in your browser, so no bound or result ever leaves the device. You type a minimum and maximum safe integer, both endpoints included, pick a count between 1 and 1,000, decide whether repeats are allowed, and click Generate. Randomness is drawn from the browser's Web Crypto interface and then mapped into your range using rejection sampling, which discards the incomplete tail of a raw random word so every integer in the inclusive range has exactly the same number of accepted raw values. Results appear as comma-separated integers that you can select and copy, and changing any input clears the previous list so an old result is not mistaken for output produced by new settings.

What Every Control on the Number Picker Does
Each setting on the number picker maps to one specific behavior. Use this table as a quick lookup when you need to remember whether an input is inclusive, what counts as a valid value, or what the picker does after you click Generate.
| Control | What it accepts | Effect on the output |
|---|---|---|
| Minimum value | Any safe integer, including negative | Smallest number that may appear; the bound itself is eligible |
| Maximum value | Any safe integer, must be greater than or equal to the minimum | Largest number that may appear; the bound itself is eligible |
| Result count | Whole number from 1 to 1,000 | How many integers the picker returns in a single click |
| Allow duplicates | Toggle on or off | On: each draw is independent, repeats possible. Off: no integer appears twice in the list |
| Generate numbers | Button click | Runs Web Crypto sampling, rejection sampling, and (if unique) a sparse partial Fisher–Yates shuffle |
| Output area | Comma-separated integers, single line | Select and copy the text; editing any input clears this list |
Picking Unique vs Repeating Numbers
The duplicates toggle is the single decision that changes how the picker behaves. Leave it on when each draw should be independent and the same number may appear several times. Turn it off when you need distinct positions, identifiers, or numbered participants. The picker checks the size of the inclusive range before it starts, so a request that asks for more unique values than the range contains is reported as impossible rather than silently trimmed.
| Goal | Count setting | Duplicates | Why this combination works |
|---|---|---|---|
| Draw one number from 1 to 10 | 1 | Either | A single draw from a fully populated range; duplicates are irrelevant |
| Repeat an experiment with replacement | Any | On | Every draw is independent, so earlier results remain eligible |
| Pick 5 winners from 30 entrants without repeats | 5 | Off | No entrant can be drawn twice; picker returns 5 distinct integers |
| Randomize the order of every value in a small range | Equal to range size | Off | Sparse partial shuffle returns each integer exactly once |
| Request 10 unique values from 1 to 5 | 10 | Off | Impossible — the picker reports an error rather than retrying |
How to Use the Number Picker
- Open the Random Number Generator tool in your browser. The page runs locally, so no bound or result is sent to a server.
- Type the smallest integer you want to allow into the minimum field. Negative values are accepted, and the bound itself is eligible to appear.
- Type the largest integer you want to allow into the maximum field. It must be greater than or equal to the minimum, and the inclusive range size must itself be a safe integer.
- Enter how many results you need in the count field, using a whole number from 1 to 1,000.
- Decide whether duplicates are allowed. Leave the toggle on for independent draws; switch it off when every result must be different.
- Click Generate numbers. The picker draws 32-bit words from Web Crypto, combines them into a 53-bit value, applies rejection sampling to discard any incomplete modulo tail, and either maps directly (duplicates on) or runs a sparse partial Fisher–Yates shuffle (duplicates off).
- Read, select, or copy the comma-separated integers in the output area. Editing any input afterward clears the list, so an old result is not mistaken for output from new settings.
Limits and Edge Cases at a Glance
The picker enforces every limit up front rather than rounding, retrying, or returning a partial list. Use this section as a lookup when a request is rejected or the output looks unexpected.
| Situation | What the picker does | Why |
|---|---|---|
| Decimals, blank fields, infinity, or unsafe integers in any input | Rejected with a clear error | Browser number fields cannot represent these values exactly |
| Maximum smaller than minimum | Rejected | Reversed bounds cannot produce a valid inclusive range |
| Inclusive range size is not an exact safe integer | Rejected | Prevents accidental rounding of large bounds |
| Count above 1,000 | Rejected | Each operation is capped at 1,000 integers |
| Unique count larger than range size | Reported as impossible | More distinct values than the range contains cannot be returned |
| Range containing only one value | Returns that value | Both bounds equal, so the only eligible result is the bound itself |
| Negative or zero-crossing range | Accepted | Both bounds and range size are valid safe integers |
Quick Scenarios and the Right Settings
Common tasks map to a small set of settings. Pick the row that matches what you are doing, fill in the bounds, and click Generate.
| Task | Min | Max | Count | Duplicates |
|---|---|---|---|---|
| Draw a single number between 1 and 10 | 1 | 10 | 1 | Either |
| Roll a six-sided die | 1 | 6 | 1 | Either |
| Generate 20 random test values from 0 to 100 | 0 | 100 | 20 | On |
| Pick 5 winners from 30 numbered entries | 1 | 30 | 5 | Off |
| Shuffle every position in a 12-person queue | 1 | 12 | 12 | Off |
| Produce a sample of 1,000 integers for a simulation | 0 | 9,999 | 1,000 | On |
Fairness, Privacy, and When Not to Use the Picker
Randomness comes from the browser Web Crypto interface — see Crypto.getRandomValues on MDN — which provides cryptographically strong input. Rejection sampling discards the incomplete tail of a raw random word so every integer in the inclusive range has exactly the same number of accepted raw values; a simple remainder operation would leave some values slightly more likely than others, so the picker avoids it. When duplicates are disabled, a sparse partial Fisher–Yates shuffle selects unique offsets without building an array for every integer in a potentially large range, keeping memory use proportional to the count you asked for rather than the size of the range.
Two practical limits matter even with a fair sampler. The picker does not publish a seed, signed transcript, external randomness beacon, or reproducible audit trail, so a visitor cannot later prove which browser entropy produced a particular list. For regulated drawings, prizes, access control, passwords, tokens, or other consequential decisions, follow the audited procedure your organization requires. For broader context on what "safe to use online" means for a browser-based picker, see Is a Random Number Generator Safe to Use Online? The picker also cannot represent integer text wider than JavaScript's safe-integer range; if you need arbitrary-precision values, use a specialist system that accepts integer strings instead of ordinary browser numbers.
Tips That Save a Click
A few habits make the picker faster in practice. Always set the count and the duplicates toggle before clicking Generate, because changing any input clears the previous list and an old result can be mistaken for output produced by new settings. If you need every value in a small range exactly once, set the count equal to the range size and disable duplicates — the picker uses a sparse partial Fisher–Yates shuffle and returns a permutation. If you are running repeated experiments, leave duplicates enabled and generate a new list whenever you want a fresh independent sample. The output is a single line of comma-separated integers, so you can paste it straight into a spreadsheet, a script, or a chat message without extra cleanup.