사다리타기는 여러 명의 참가자를 여러 개의 결과에 무작위로, 그러나 겹치지 않게 짝지어 주는 추첨 놀이입니다. 이 도구는 종이에 사다리를 그리는 대신 참가자 이름과 결과(당첨·꽝, 청소 구역, 순번 등)를 한 줄에 하나씩 입력하면 즉시 무작위 짝을 만들어 줍니다. 커피 내기, 발표 순서, 역할 분담처럼 '누가 무엇을 맡을지'를 공정하게 정해야 할 때 쓰기 좋습니다.
핵심은 '한 명당 하나, 하나의 결과는 한 명에게'라는 일대일 대응입니다. 손으로 그리는 전통 사다리타기가 아무리 줄이 복잡하게 얽혀도 절대 두 사람이 같은 칸에 도착하지 않는 것과 똑같은 원리로, 이 도구도 결과를 무작위로 섞어 참가자마다 서로 다른 결과를 배정합니다. 그래서 '당첨'이 하나면 정확히 한 사람만 당첨되고, 나머지는 모두 다른 결과를 받습니다.
아래에서는 사다리타기가 왜 항상 공정한 일대일 대응이 되는지 그 수학적 원리, 손으로 그리는 사다리와의 관계, 그리고 내기·순서·역할 정하기 같은 실제 활용법과 자주 묻는 질문을 정리했습니다.
사용 방법
- 왼쪽 칸에 참가자 이름을 한 줄에 한 명씩 입력합니다. 예를 들어 '철수', '영희', '민수'를 각 줄에 적습니다.
- 오른쪽 칸에 결과를 한 줄에 하나씩 입력합니다. '당첨/꽝'처럼 승패를 정하거나 '설거지', '2번' 같은 역할·순번을 적어도 됩니다.
- '사다리 타기' 버튼을 누르면 결과가 무작위로 섞여 참가자마다 하나씩 배정됩니다. 결과 수가 참가자 수보다 적으면 부족한 만큼 자동으로 '꽝'이 채워집니다.
- 표시된 '참가자 → 결과' 짝을 확인합니다. 다시 누르면 새로 섞여 매번 다른 결과가 나옵니다.
사다리타기는 왜 항상 공정할까 — 일대일 대응의 원리
사다리타기의 공정함은 '전단사(일대일 대응, bijection)'라는 수학 개념으로 설명됩니다. 전단사란 두 집합의 원소를 하나도 빠짐없이, 그리고 겹치지 않게 짝짓는 대응을 말합니다. 참가자 집합과 결과 집합이 이렇게 대응되면 '모든 참가자가 결과를 하나씩 받는다(빠짐없음)'와 '한 결과가 두 사람에게 가지 않는다(겹치지 않음)'가 동시에 보장됩니다.
손으로 그리는 사다리타기에서 이 성질이 성립하는 이유는, 사다리의 가로줄(가로 다리) 하나하나가 인접한 두 세로줄을 맞바꾸는 '자리 교환'이기 때문입니다. 자리 교환을 아무리 여러 번 이어 붙여도 결국은 출발 칸들을 도착 칸들로 재배열하는 '순열'이 됩니다. 순열은 언제나 서로 다른 출발점을 서로 다른 도착점으로 보내므로, 두 사람이 같은 칸에 도착하는 일은 원천적으로 불가능합니다.
이 도구가 사다리를 그리는 방식
이 도구는 화면에 사다리 줄을 그리는 대신, 결과 목록을 무작위로 섞어(셔플) 참가자 순서대로 하나씩 나눠 줍니다. 무작위 셔플의 결과물이 곧 하나의 순열이므로, 복잡한 가로줄을 그린 사다리와 수학적으로 완전히 같은 '무작위 일대일 대응'이 만들어집니다.
무작위 순열과 공정성
사다리타기가 '공정하다'고 말할 때는 두 가지 의미가 있습니다. 첫째는 앞서 설명한 일대일 대응(아무도 결과를 두 번 받지 않음)이고, 둘째는 각 참가자가 각 결과를 받을 확률이 똑같다는 '균등성'입니다. 이 도구는 결과를 섞을 때 피셔–예이츠 셔플이라는 방법과 암호학적 난수를 사용해, 가능한 모든 배정이 같은 확률로 나오도록 합니다.
| 참가자 수 | 가능한 배정의 수 | 특정 한 명이 '당첨'일 확률 |
|---|---|---|
| 2명 | 2가지 | 1/2 (50%) |
| 3명 | 6가지 | 1/3 (약 33%) |
| 4명 | 24가지 | 1/4 (25%) |
| 5명 | 120가지 | 1/5 (20%) |
| 6명 | 720가지 | 1/6 (약 17%) |
'당첨' 하나일 때 확률은 인원수 분의 1
결과에 '당첨' 하나와 나머지 '꽝'을 넣으면, 참가자가 n명일 때 각자가 당첨될 확률은 정확히 1/n로 모두 같습니다. 먼저 입력했다고 유리하거나 마지막 줄이라 불리한 일은 없습니다.
결과 수가 참가자 수와 다를 때
일대일 대응이 성립하려면 참가자 수와 결과 수가 같아야 합니다. 이 도구는 둘의 수가 어긋나도 자연스럽게 처리합니다.
- 결과가 참가자보다 적을 때: 모자란 칸을 자동으로 '꽝'으로 채운 뒤 섞습니다. 예를 들어 4명에 '당첨' 하나만 넣으면 나머지 3칸이 '꽝'이 됩니다.
- 결과가 참가자보다 많을 때: 섞은 뒤 참가자 수만큼만 앞에서 잘라 사용합니다. 배정되지 않고 남는 결과가 생길 수 있습니다.
- 결과가 정확히 참가자 수와 같을 때: 입력한 모든 결과가 하나씩 빠짐없이 배정됩니다. '설거지·정리·심부름'처럼 역할을 나눌 때 이 방식이 가장 깔끔합니다.
이럴 때 쓰세요 — 활용 예시
무언가를 무작위로, 그러나 겹치지 않게 정해야 하는 거의 모든 상황에 쓸 수 있습니다.
- 내기·벌칙 정하기: 결과에 '당첨/꽝' 또는 '커피 쏘기' 같은 벌칙을 넣어 오늘의 당첨자를 뽑습니다.
- 순서 정하기: 결과에 '1번·2번·3번…'을 넣으면 발표 순서, 게임 순번, 노래방 순서를 공정하게 배분합니다.
- 역할·구역 분담: '설거지·청소·장보기'처럼 할 일을 넣어 팀원에게 하나씩 나눠 줍니다.
- 자리·조 배정: 좌석 번호나 조 이름을 결과로 넣어 무작위로 배치합니다.
- 선물 교환(마니또): 참가자와 참가자를 짝지어 누가 누구에게 선물할지 정할 때도 응용할 수 있습니다.
자주 묻는 질문
- 두 사람이 같은 결과를 받을 수도 있나요?
- 아니요. 사다리타기는 결과 목록을 섞어 참가자마다 서로 다른 칸을 배정하는 일대일 대응이라, 같은 '당첨'이나 같은 '1번'이 두 사람에게 가는 일은 없습니다. 단, 결과 칸에 똑같은 글자('꽝'과 '꽝')를 여러 개 넣었다면 값이 같아 보일 뿐, 서로 다른 칸이 배정된 것입니다.
- 먼저 입력하거나 위에 적힌 사람이 더 유리한가요?
- 그렇지 않습니다. 결과는 무작위로 완전히 섞인 뒤 순서대로 나눠지므로, 입력 순서나 줄 위치는 확률에 전혀 영향을 주지 않습니다. 참가자가 n명이고 '당첨'이 하나면 누구든 당첨 확률은 똑같이 1/n입니다.
- 결과를 참가자보다 적게 넣으면 어떻게 되나요?
- 모자란 만큼 자동으로 '꽝'이 채워진 뒤 섞입니다. 예를 들어 5명에게 '당첨' 하나만 넣으면 나머지 4칸이 '꽝'으로 채워져, 한 명만 당첨되고 네 명은 꽝이 됩니다.
- 같은 참가자·결과로 다시 돌리면 결과가 바뀌나요?
- 네. 버튼을 누를 때마다 새로 무작위로 섞이므로 매번 다른 배정이 나올 수 있습니다. 한 번 정한 결과를 그대로 쓰려면 화면에 나온 짝을 따로 기록해 두세요.
- 정말 무작위인가요, 아니면 규칙이 있나요?
- 브라우저의 암호학적 난수 생성기(crypto)와 피셔–예이츠 셔플을 사용해, 가능한 모든 배정이 동일한 확률로 나오도록 만듭니다. 특정 결과가 더 자주 나오도록 하는 편향은 없습니다.
- 손으로 그리는 사다리타기와 결과가 다르지 않나요?
- 수학적으로 같습니다. 손으로 그린 사다리의 가로줄들은 자리 교환을 반복하는 것이고, 그 최종 결과는 하나의 순열입니다. 이 도구가 만드는 무작위 셔플도 똑같은 순열이므로, 사다리를 그려 타고 내려온 것과 동일한 무작위 일대일 대응이 나옵니다.