Ladder Game
Set the names and outcomes, then trace an animated Ghost Leg path with a securely shuffled one-to-one result.
- More accurate results
- Fewer clicks, keyboard friendly
Set up the draw
Keep the same number of participants and outcomes. Existing entries stay when you add or remove a row.
A fair assignment first
Every player is shuffled to one different outcome before the ladder is drawn to show that assignment.
The draw uses crypto.getRandomValues() in this browser. Names and outcomes are not sent to a server.
Ladder draw
Build a ladder to reveal the paths.
Build a ladder to reveal the paths.
How to use
- Enter a participant at the top of each pair and one outcome beside it.
- Add or remove rows until there are 2 to 20 equal participant and outcome slots.
- Select Build ladder, or press L while outside a text field.
- Select a participant to animate that path, or use Reveal all to show every match.
- Copy results to paste the complete player-to-outcome list into a group chat.
Why the assignments are fair
A drawn ladder is a sequence of neighboring swaps, so it always connects every starting line to a different ending line. Randomly placing a small number of rungs, however, can favor some nearby destinations. This tool first creates a uniformly shuffled one-to-one assignment with the browser Web Crypto API, crypto.getRandomValues(), using Fisher–Yates shuffling and rejection sampling. It then builds rungs that produce exactly that already-fair assignment. With N participants, every participant therefore has a 1-in-N chance of each distinct outcome before the animation begins.
Reveal paths without changing the result
Building the ladder fixes the full assignment before anyone selects a name. Selecting one player only draws that player’s existing route; Reveal all displays the same complete mapping at once. A horizontal rung always connects two adjacent vertical lines, and no two rungs that touch the same line are drawn on the same row, so each crossing has one unambiguous direction. Use a repeated outcome such as “Safe” in several slots when several people may receive the same text; the ladder still assigns each individual slot exactly once.
Built for an in-person group
The board supports 2 through 20 participant/outcome pairs, including Korean names, emoji, and other Unicode text. Longer boards scroll horizontally rather than squeezing the paths into unreadable columns. Existing rows are retained when the group size changes, and the current setup is saved only in the browser so a refresh does not erase names. Copy results produces a plain player → outcome list after the draw; no public URL or account is required to pass the result into a chat or event note.
Frequently asked questions
Is this ladder game truly fair?
Yes. Before any rungs are drawn, this tool uses crypto.getRandomValues() to make a uniformly shuffled one-to-one assignment. For N participants, each participant has a 1-in-N chance of each individual outcome slot; the ladder only visualizes that completed assignment.
Can two people get the same result?
Each of the 2–20 bottom slots is connected to exactly one participant, so one individual slot cannot be assigned twice. To allow several people to get the same result, enter identical outcome text in more than one slot, such as three “Safe” slots.
Does revealing a path change the result?
No. The full set of player-to-outcome assignments is fixed when Build ladder is selected. Choosing a player animates only the route that was already determined, and Reveal all shows those same paths together.
Are participant names uploaded or shared in a link?
No. Names, outcomes, random selection, and animation stay in the current browser. The setup is stored only in that browser for refresh recovery, while Copy results copies a plain text summary only when you choose it.
Related tools
Updated 2026-10-18