Picker

Picker

Random number generator

Choose a range, set how many numbers you need, and generate them client-side with crypto randomness.

Link copied

How this random number generator works

The generator uses crypto.getRandomValues with rejection sampling so each number in your selected range has the same chance of appearing. Nothing is sent to a server.

A random number generator returns one or more integers from a range you define, with every value in that range having an equal chance of being picked. This version runs entirely in your browser using crypto.getRandomValues with rejection sampling, which means there is no modulo bias when the range size is not a clean power of two and no network request is needed to produce a number. The inputs you type stay local to your device, and the result appears as soon as you press Generate.

Use it when you need a number that should not come from a habit or a guess. Common cases include drawing a raffle winner from numbered entries, choosing a seat or locker assignment, sampling rows from a spreadsheet, picking a question from a numbered worksheet, or selecting which player in a numbered list goes first. The Quantity field handles up to twenty numbers at a time, so a small lottery, a stand-in pick for a multi-round game, or a quick set of practice IDs all work in one pass.

The tool is built to be replayable. Both the range and the quantity are stored in the URL, so once a draw is set up you can share the link with a colleague, a classroom, or the rest of a group and everyone will see the same controls. Settings also persist between visits in your own browser, so a repeat task does not require typing the bounds again.

How to generate a random number

  1. Type the lowest number you want to allow in the Minimum field. Negative numbers are accepted.
  2. Type the highest number you want to allow in the Maximum field. The maximum must be greater than or equal to the minimum.
  3. Set Quantity to the number of values you want returned in one draw, between 1 and 20.
  4. Press Generate. Each value is drawn independently, so duplicates can appear when the quantity is large relative to the range.
  5. Press Copy link to keep the current Minimum, Maximum, and Quantity in the URL for later or to share.

Questions people ask

Is this random number generator truly random?

The numbers are cryptographically pseudo-random, drawn from crypto.getRandomValues in your browser. For practical decisions, raffles, classroom prompts, and sampling work that is functionally equivalent to truly random. Rejection sampling is used so each integer in the chosen range has the same probability — there is no modulo bias.

Can I generate more than one number at once, and can the results repeat?

Yes. Set Quantity to any value from 1 to 20 and the tool returns that many integers in a single draw. Each draw is independent, so the same number can appear more than once. For draws that need to be unique, draw one extra number and discard duplicates manually, or use the wheel of names with one entry per integer.

Are negative numbers and large ranges supported?

Yes. Negative values are accepted for both Minimum and Maximum, and the range can span billions if you need to sample a wide ID space. Numbers always come back as integers; the tool floors any decimals you enter into the bound fields.

Are the numbers or my inputs saved on a server?

No. Generation happens in your browser and nothing is sent to a server. Inputs are stored locally so the range comes back when you return to the page, and the current settings are written into the URL so you can share or bookmark them.

Can I share my range settings or restore a previous draw?

Yes. Change the inputs, then use Copy link to capture the Minimum, Maximum, and Quantity in the URL. Anyone opening that link sees the same setup. The latest values also reload automatically the next time you visit, unless a URL with different settings is supplied.

How is this different from a spreadsheet RAND or RANDBETWEEN function?

Spreadsheet RANDBETWEEN uses the spreadsheet engine and recalculates on every change, which can quietly replace a draw you wanted to keep. This generator only draws when you press Generate, the source of randomness is the browser crypto API, and there is no risk of an audit trail being lost to a spreadsheet recalc.