Up to 100 entries. Empty lines do not count.

0 entries

The result is already decided when the strip starts scrolling: the draw happens first, and what scrolls is the way to get there. With reduced motion on, the result appears immediately.

The draw uses crypto.getRandomValues, with the remainder rejected rather than divided: taking the modulo of a random number would make some entries come up more often than others, by very little and for ever.

Identical entries all stay. Two tickets with the same name are two tickets, and removing one would change everyone else’s odds.

Everything happens in your browser. The list is not sent anywhere.

How it works

  1. Write the entries, one per line.
  2. Press Draw. The strip scrolls and stops on the result.
  3. If you need to, tick «remove the drawn entry» so it cannot come up again.

What it does

It draws one entry from a list. Use it for a giveaway, to decide who starts, to hand out a turn.

Up to a hundred entries, one per line. Empty lines do not count.

About the animation

The result is already decided when the strip starts scrolling. The draw happens first, and what scrolls is the way to get there.

That is not an implementation detail: if the entries flying past were real draws, the animation would be choosing the result while showing it — and there would be no way to know when it stopped choosing. This way there is one moment when the draw happens, and it takes no time at all.

With reduced motion turned on in your system, the result appears immediately. It is the same choice the dice roller makes.

About randomness

The draw uses crypto.getRandomValues, the browser’s cryptographic generator, and rejects the remainder rather than dividing it.

Taking the modulo of a random number does not give a fair draw: the possible values do not divide exactly by the number of entries, so some come up a fraction more often. On three entries the bias is one part in one and a half billion — invisible, for ever, and no screen would tell you.

About duplicates

Identical entries all stay. Two tickets with the same name are two tickets, and removing one would change everyone else’s odds without saying so.

For the same reason, “remove the drawn entry” removes that line, not the first one with that name.

The button copies an address that carries the list inside it: whoever opens it finds the same entries and makes their own draws.

If the list is too long to fit in an address, no link is made and the page says so. Sending a link with half the names would be worse than not sending one: neither of you would notice any were missing.

What is not here

No result is saved. Drawn entries stay in memory while the page is open and vanish on reload — this is a tool, not a leaderboard.

The link carries the list, not the results: whoever opens it draws their own.

About your data

Everything happens in your browser. The list is not sent anywhere.

From here you also go here

Stream countdown

A countdown to put on screen with OBS. Length or clock time, text above and below, transparent background.

Gaming and streaming

Keyboard test

Press a key and watch it light up on the drawing. Shows the key code, how many you are holding at once, and which ones you have already tried.

Gaming and streaming

Webcam and microphone test

Check that your camera and microphone work, with the detected resolution and a live audio level. Nothing is recorded.

Gaming and streaming

All tools