A number picker example is a side-by-side view of the inputs you enter and the integers the tool returns from a chosen inclusive range. In a typical walkthrough, you type two bounds such as 1 and 50, choose a count of three, leave duplicates enabled, and receive three comma-separated integers from that range. Both endpoints can appear, so a request for 1 to 10 may return 1 or 10 alongside every whole number between them. Worked samples are the clearest way to understand how an inclusive range, a result count, and a duplicate toggle combine into a single fair draw. The walkthroughs below cover common setups: a small positive range, a range that crosses zero, a unique-only draw from a classroom-sized pool, and the maximum bulk request the tool accepts in one click. Each example shows the exact fields you would type, the duplicate setting that fits the situation, and the shape of the comma-separated output you should expect. You can copy any of these setups directly, then adjust the bounds or count to fit your own task.
The Random Number Generator is the tool behind every example on this page. It runs in the current browser, takes three numeric inputs plus a duplicate preference, and returns a comma-separated list you can paste into a worksheet, a script, or a chat message. None of your bounds or results leave the current page, and every draw pulls from browser Web Crypto entropy rather than the standard Math.random function.

What a Number Picker Does in Practice
A number picker is a small utility that draws integers from a defined inclusive range. You supply the smallest allowed value, the largest allowed value, and how many results you want. Both bounds are eligible, and the inclusive range can sit anywhere — between two positives, between two negatives, or across zero — provided each bound and the inclusive range size remain inside JavaScript's safe-integer window. The tool reads these three fields plus a duplicate toggle and returns the result as a comma-separated list you can copy directly. Every draw uses the browser's Web Crypto interface, and the tool applies rejection sampling so the accepted raw values map evenly onto every integer in your range. Changing any input clears the previous list, so a stale result cannot be mistaken for one produced by your new settings.
Worked Example: Three Numbers from 1 to 50
Start with the simplest setup. Enter 1 in the minimum field, 50 in the maximum field, and choose 3 for the result count. Leave the duplicate toggle enabled so any of the fifty values may appear in any slot. Press Generate numbers and the tool returns three integers between 1 and 50, inclusive, written as a comma-separated line. A possible sample might be 17, 42, 8 — the actual output is unpredictable, which is the point. Because the range is inclusive, you could see 1 or 50 in any slot. Repeating the same request generally produces a different triple, since each click draws fresh random bits. This is the textbook classroom-style number picker example, and it works for raffles, picking practice problems, or selecting three volunteers from a roster numbered 1 through 50.
Example with Negative and Zero-Crossing Bounds
The bounds do not have to be positive. To draw one integer from -10 to 10, enter -10 in the minimum field, 10 in the maximum field, and request 1 result. The inclusive range contains 21 integers (-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10), and the tool is equally likely to return any one of them, including -10, 0, or 10. This setup is useful for thermometers, temperature deltas, signed scores, or any range that crosses zero. The same configuration with a count of 5 and duplicates enabled produces five independent draws — the same negative value could appear more than once. A single-value range also works: entering -3 as both the minimum and the maximum always returns -3, regardless of the duplicate setting.
Unique-Only Example: Picking Five from 1 to 20
Switch the duplicate toggle off and the tool will not return the same integer twice in one list. Enter 1 as the minimum, 20 as the maximum, and request 5 results. The tool uses a sparse partial Fisher-Yates shuffle to pick five distinct offsets from the twenty available integers and returns them in randomized order. A possible output might be 4, 17, 2, 19, 11. Each of the 20 integers has the same probability of appearing in the final list. If you raise the count to 21 or higher, the tool refuses the request and surfaces a clear error: the count exceeds the number of integers in the range, so a unique draw is impossible. This setup is the right choice when selecting distinct numbered participants, raffle tickets, or test positions where no participant should be picked twice.
Maximum-Bulk Example: Drawing 1,000 Integers
Set the count to 1,000 and the tool will draw up to one thousand integers in a single click. With a wide range such as 1 to 100,000 and duplicates enabled, the 1,000-result sample gives you a quick lookup table for simulations, randomized test data, or seed values for downstream experiments. The result list arrives as a single comma-separated line that you can paste into a spreadsheet or a script. For a fully randomized ordering of every integer in a small range, set the count equal to the inclusive range size and disable duplicates; the tool then performs a sparse partial shuffle over the full range and returns each integer exactly once. This is the right approach when you need a permutation of values rather than a sample with possible repeats. If you regularly run bulk-style draws, the bulk number picker walkthrough covers the same workflow with additional patterns.
Common Example Setups for Daily Tasks
The table below pairs common everyday tasks with the exact bounds, count, and duplicate setting that produce a useful result. The "what you get" column describes the output shape rather than a specific computed value, because each draw is independent and unpredictable.
| Task | Min | Max | Count | Duplicates | What you get |
|---|---|---|---|---|---|
| Pick one raffle ticket | 1 | 100 | 1 | Off | A single winning number from 1 to 100 |
| Choose five volunteers | 1 | 30 | 5 | Off | Five distinct seat numbers |
| Roll a d20-style draw | 1 | 20 | 1 | Off | One number from 1 to 20 |
| Simulate 50 die rolls | 1 | 6 | 50 | On | 50 independent values, repeats allowed |
| Shuffle a roster of 24 | 1 | 24 | 24 | Off | All 24 values in random order |
| Sample for testing | 1 | 10,000 | 1,000 | On | 1,000 integers for test fixtures |
Run Your Own Number Picker Example
- Open the Random Number Generator tool and locate the minimum and maximum fields.
- Type the smallest allowed integer into the minimum field and the largest allowed integer into the maximum field; both endpoints are eligible results.
- Choose how many integers you want from 1 to 1,000 using the result count control.
- Toggle duplicates on if repeats are fine, or off if every value in the result list must be unique.
- Select Generate numbers to produce the comma-separated integer list.
- Review the output, then select and copy it for use in your worksheet, script, or drawing.
How the Examples Stay Fair Across Draws
Two design choices keep the results unbiased. First, randomness comes from the browser's Crypto.getRandomValues interface, which exposes the Web Crypto primitive that the W3C Web Cryptography specification defines. Second, the tool uses rejection sampling: it discards any raw random value that falls in the incomplete tail of a modulo operation, then maps the accepted value into the requested inclusive range. Each integer ends up with the same number of possible accepted raw values, so no number in your bounds is over- or under-represented. When duplicates are disabled, the tool performs a sparse partial Fisher-Yates shuffle so the unique draw stays O(count) in memory even for very large ranges. These mechanics are invisible from the output, but they are the reason the same example run twice does not skew toward the same few numbers.
One practical limit shapes every example above: the inclusive range size, the count, and each individual bound must be safe integers. The tool rejects decimals, blanks, reversed bounds, infinity, and unsafe integers before it draws. Requests for more unique values than the range can hold fail fast with an error rather than silently returning fewer numbers. If your task needs values wider than JavaScript's safe-integer range, you need a specialist system that accepts integer strings rather than ordinary browser numbers.
Related reading: What Should I Eat: Command Line vs Online Pickers.