Random Item Picker

Paste a list of items, pick one or more entries at random, and review the remaining items and draw history.

One item per line. Blank lines are ignored; identical text on different lines remains separate.

Pick up to 1,000 items per draw. Without replacement, the count cannot exceed the available pool.

Draw mode

When on, input lines that already appear in history are removed from the next draw's available pool.

An example list is loaded and ready for a draw.
Selected this roundWaiting to pick
Waiting to pick

All results from this draw

  • Selected items will appear here after a draw.
This draw
0
Currently available
0
History rounds
0

Remaining items

  • No items remain.

Draw history

  1. History will appear here after a draw.

Copied text has no numbering; each selected item appears on its own line.

Learn more

Draw method and no-duplicate rules

Secure random selection

The tool removes blank lines first and gives every input line its own identity. Random indexes come from browser Web Crypto and use rejection sampling instead of direct modulo mapping.

Without replacement uses a partial Fisher–Yates shuffle and moves only the range needed for the draw. With replacement samples from the current pool for every pick.

Without replacement vs. excluding history

Without replacement prevents the same input line from appearing twice in one round. Excluding history removes lines picked in earlier rounds from the next available pool.

How duplicate text is treated

Two lines with identical text are still two separate items. This preserves the actual weight of the input; clean the list first if you need unique text only.

Limits, privacy, and appropriate use

The tool accepts up to 1,000,000 characters, 50,000 input lines, and 1,000 picks per round. History keeps up to 100 rounds and removes the oldest entries beyond that.

Everything runs locally in the browser. The list is not uploaded, no remote API is used, and nothing is written to localStorage. Clipboard access happens only after you choose Copy.

Use this for everyday choices and entertainment, not regulated drawings or medical, legal, financial, or safety-critical decisions.

Tool information and sources

The random source follows MDN's Crypto.getRandomValues guidance, and the no-replacement method follows the Fisher–Yates approach described by NIST. No third-party runtime library is used.

MDN Crypto.getRandomValues()

NIST Fisher–Yates shuffle

Frequently asked questions

What is the difference between with and without replacement?

With replacement lets the same input line be selected more than once in a round. Without replacement allows each input line at most once in that round.

Why are no items available after I exclude previous picks?

The history has already covered every input line. Clear the history, turn off the exclusion option, or add more items to continue.

Why is the history cleared when I edit the list?

Changing the lines changes the identity of the available pool. Clearing old history prevents items from the previous list being excluded from the new one.