Selected Items
{{ p }}
Items List
Drop file to load list
Drag & drop a text file to replace the list.
  • #{{ i + 1 }}{{ p }}
History
  • {{ h.time }} {{ h.items.length }} items
    {{ h.items.join(', ') }}

Introduction:

Random selection is the statistical practice of drawing one or more items from a finite list so that every candidate has the same chance of being chosen. It removes human bias, supports fair decision-making, and underpins lotteries, sampling, and testing.

This tool lets you paste or import any plain-text list, set the number of picks, and instantly receive an unbiased subset. You can enforce unique draws, ignore blanks, remove duplicates, or alphabetise results, all processed entirely in your browser.

Use it to assign chores, raffle prizes, or pick meeting topics without debate. One click delivers impartial results, keeping group decisions quick and transparent.

Technical Details:

Uniform random sampling ensures each list entry has probability P=1N, where N is the candidate count. When sampling without replacement, probabilities remain equal at each draw, but the pool shrinks, guaranteeing uniqueness until exhausted.

Core Probability:

P=kN

k = items requested, N = candidate items. For k > N, probability is undefined because unique sampling becomes impossible.

Candidate Count (N)Pick Size (k)Single-Item Probability (P)
510.20
1030.30
2050.25

Probabilities scale linearly with k; doubling the requested picks doubles each item’s chance of appearance, provided sampling is without replacement.

Parameters:

ParameterMeaningUnit/TypeTypical Range
listSource text entries, one per linestring2 – 5000 lines
pickCountNumber of items to drawinteger1 – N
uniqueForbids repeat picks within the same drawbooleantrue/false
ignoreBlankSkips empty linesbooleantrue/false
removeDuplicatesCollapses identical lines before drawingbooleantrue/false
sortAlphaAlphabetises output listbooleantrue/false

Example (10 candidates, k = 3):

310=0.3

Each name has a 30 % chance of being picked; three unique names appear in the final output.

  • Assumes Math.random() provides sufficiently uniform distribution.
  • Browser extensions may influence clipboard access.
  • Sampling accuracy decreases if the runtime’s RNG is biased.
  • Large lists reduce perceived speed on low-power devices.
  • Requesting k > N with uniqueness enabled triggers an error.
  • Blank-only lists yield zero candidates.
  • Duplicate suppression may shrink N unexpectedly.
  • Line endings from imported files auto-convert to Unix style.

See Knuth’s Seminumerical Algorithms and the National Institute of Standards and Technology’s tests on RNG uniformity for validation of uniform sampling methods.

The algorithm operates entirely client-side, aligning with GDPR provisions for local processing of non-personal data.

Step-by-Step Guide:

Follow these steps to generate a fair random subset.

  1. Paste or import your list into the text area.
  2. Enter the desired number of picks.
  3. (Optional) Toggle unique, ignoreBlank, or other controls.
  4. Press Pick Randomly and watch the animated reveal.
  5. Copy results or review the automatic history log.

FAQ:

Is my data stored?

No. All processing happens in-browser and vanishes when the page closes.

How random is the selection?

The tool relies on the browser’s built-in pseudo-random generator, which is sufficiently uniform for everyday tasks.

Can I force unique draws?

Yes. Enable the “Pick only once per item” option to prevent repeats within a single draw.

What file types can I import?

Plain-text files with .txt or .csv extensions are accepted and line-split automatically.

Why is the pick button disabled?

Ensure your list contains at least one non-blank line; the button re-enables once valid candidates exist.

Glossary:

Candidate
Any list entry eligible for selection.
Sampling
Process of choosing items from a population.
Uniqueness
Constraint that forbids duplicate items in a single draw.
Probability (P)
Likelihood that an item is selected.
RNG
Pseudo-random number generator provided by the runtime.

Outcomes are purely random and hold no monetary value.

Embed this tool into your website using the following code: