알아두면 좋은 내용
5가지 추첨 모드
🎰 룰렛 (메인)
4초 회전 → 결과 발표. 항목별 가중치 토글로 단순/불균등 둘 다
⚖️ 가중치 추첨
1~20 가중치 + 확률 미리보기 + 여러 개 뽑기
👥 팀 나누기
명단 → 좌우 2분할 결과. 리더·묶기·떨어뜨리기 옵션
📋 순서·자리
발표 순서 / 행×열 자리. 고정·인접 회피
📊 공정성 검증
100~100,000회 시뮬레이션으로 분포 직접 확인
모바일에서도 빠른 칩 입력
텍스트박스에 줄바꿈으로 명단을 채우던 방식 대신, 이름 한 개씩 Enter로 칩이 추가되는 방식을 채택했습니다. 모바일 키보드에서도 자연스럽게 입력·삭제할 수 있습니다.
- Enter / 쉼표 — 칩 추가
- 붙여넣기 — "김민수, 이지은, 박서준" 또는 여러 줄 한 번에 → 자동 분리
- Backspace — 입력 칸이 빈 상태에서 누르면 마지막 칩 삭제
- × 버튼 — 개별 칩 제거
- 템플릿 카드 — 음식·이름·번호·옵션을 클릭 한 번에 채움
- 중복 표시·제거 — 같은 이름 있으면 경고 + 한 번 클릭으로 정리
룰렛 — 가장 자주 쓰는 모드
본 도구의 룰렛은 단순 추첨과 가중치 추첨을 모두 포함합니다. 평소엔 모든 칸 같은 크기로 균등 추첨, 가중치 토글을 켜면 항목별 ×1~×10 비중을 슬라이더로 조정해 칸 크기가 달라집니다.
🎰 점심 메뉴
못 정할 때 가장 빠른 결정
🎰 벌칙 게임
모임·MT·동아리 게임
🎰 이벤트 추첨
경품·당첨자 시각화
🎰 발언 순서
회의·스터디 발언자 룰렛
가중치 추첨 — 확률 차등
같은 항목을 여러 번 입력하는 대신 가중치로 확률을 조절합니다. 확률 = 항목 가중치 / 전체 가중치 합.
예: A=3, B=1, C=2 → 총합 6
→ A: 3/6 = 50%, B: 1/6 ≈ 17%, C: 2/6 ≈ 33%
활용 예: 이벤트 응모권 횟수 = 가중치 / 선호 메뉴 비중 / 게임 아이템 등급별 차등 / 벌칙 분산(많이 받은 사람 가중치 ↓).
팀 나누기 알고리즘
결과는 좌우 2열 카드로 표시 — 한 화면에 A팀·B팀이 동시에 보입니다. 모바일에서도 가로 분할 유지.
- 리더 우선 배치 — 각 팀에 1명씩 (지정 시)
- 함께 묶을 그룹 — 가장 작은 팀에 통째로 배치
- 나머지 셔플 분배 — Fisher-Yates 무작위 셔플 후 가장 작은 팀에 순환 배치
- 떨어뜨릴 그룹 회피 — 같은 그룹 멤버가 있는 팀 자동 회피
활용: 학교 조별 활동·회사 회식 자리·운동 경기 팀·동아리 모임·게임 멀티플레이.
발표 순서·자리 배치
자리 배치 결과는 행·열 수에 따라 폰트 크기가 자동 조정됩니다. 다만 열이 많거나 이름이 매우 길면 좁은 셀에서 잘릴 수 있으며, 셀에 마우스를 올리면 툴팁으로 전체 이름을 확인할 수 있습니다. 발표 순서는 1번·마지막 고정과 제외자 옵션 지원.
학기 초 자리
학생 명단 → 행×열 자리 자동
발표회 순서
1번·마지막 고정 + 제외자
회의 좌석
같은 부서 떨어뜨리기
시험 좌석
커닝 방지 인접 회피
결혼식 자리
하객 무작위 + 그룹 묶기
면접 좌석
지원자 행렬 배치
공정성 검증 — 큰 수의 법칙
본 도구가 정말 공정한지 의심된다면 [공정성] 탭에서 직접 시뮬레이션할 수 있습니다.
항목 4개를 같은 확률(각 25%)로 n번 뽑으면 한 항목이 나오는 횟수는 이항분포를 따르고, 기대 횟수 대비 상대 편차의 표준편차는 σ = √((1 − p) ÷ (n × p))입니다(p = 1/4). 아래 표의 σ와 95% 범위는 이 식으로 계산한 값이고, ‘최대 편차 중앙값’은4개 항목 중 가장 많이 벗어난 항목의 편차를 여러 번 시뮬레이션해 가운데 값을 적은 것입니다. 공정성 탭에서 한 번 돌린 결과가 이 범위 안이면 정상입니다.
| 시뮬 횟수 | 상대 편차 1σ | 95% 범위 | 4개 중 최대 편차 (중앙값) | 해석 |
|---|---|---|---|---|
| 100회 | ±17.3% | ±33.9% | ±24% | 작은 표본 — 변동 큼 |
| 1,000회 | ±5.5% | ±10.7% | ±7% | 상당히 균등 |
| 10,000회 | ±1.7% | ±3.4% | ±2.3% | 거의 균등 |
| 100,000회 | ±0.55% | ±1.07% | ±0.7% | 이론값에 매우 근접 |
큰 수의 법칙(Law of Large Numbers): 시행 횟수가 많을수록 실제 비율이 기대 확률에 수렴합니다. 편차는 횟수의 제곱근에 반비례해서, 횟수를 100배로 늘려야 편차가 1/10로 줄어듭니다. 위 “상대 편차”는 (실제−기대)/기대 × 100으로 공정성 탭의 “편차” 열과 같은 기준입니다(절대 비율 %p 차이는 이보다 작습니다). 가중치가 작은 항목은 p가 작아 같은 횟수에서도 상대 편차가 더 크게 나오니, 가중치 1짜리 항목이 ±30%쯤 벗어나 보여도 100회 수준에서는 이상한 일이 아닙니다.
사다리 게임은 정말 공정할까
사다리타기(아미다쿠지)는 의외로 완전한 균등 추첨이 아닙니다. 통계물리 학술지 분석(Inoue, “Statistical analysis on Amida-kuji”, Physica A 369권 2호, 2006)에 따르면 사다리에서 도착 위치의 확률분포는 1차원 확산 과정을 따릅니다 — 가로줄 하나가 확산의 한 걸음이어서, 가로줄이 적으면 출발 위치 바로 아래 근처에 도착할 확률이 균등보다 높아집니다.
| 사다리 구성 | 균등이라면 | 실제 계산 |
|---|---|---|
| 세로 3줄 · 가로 3개 | 각 33.3% | 전수 8패턴 — 당첨이 오른쪽 끝일 때 출발 위치별 당첨 확률 25% / 37.5% / 37.5% |
| 세로 6줄 · 가로 10개 | 각 16.7% | 맨 끝 출발은 바로 아래 도착 37.4%, 반대편 끝은 1.3% |
| 세로 6줄 · 가로 50개 | 각 16.7% | 모든 출발·도착 조합이 14.7%~18.6% — 여전히 완전 균등에 못 미침 |
세로 3줄 전수 계산은 언론 보도에 따르면 일본 슈쿠토쿠대학 이가라시 가즈히로 특임교수가 검증한 값으로(데일리스포츠 2018), 당첨이 오른쪽 끝에 보일 때 출발 위치에 따라 당첨 확률이 갈리며 일반적으로 당첨 위치 바로 위 출발이 가장 유리합니다. 표의 수치는 가로줄 하나가 이웃한 세로줄 쌍 가운데 하나를 같은 확률로 고른다고 보고, 가로줄 수만큼 전이행렬(마르코프 연쇄)을 곱해 이 페이지를 만들 때 계산한 값입니다.
정리하면 사다리의 공정성은 가로줄 수에 따라 달라집니다 — 가로줄이 충분히 많아지면 균등에 접근하지만 수렴이 느립니다. 사다리를 쓴다면 가로줄을 넉넉히 추가하고 당첨 위치를 아무도 모르는 상태로 정하는 것이 좋습니다. 반면 본 도구의 순서·팀 추첨은 사다리 구조를 거치지 않고 균등 셔플로 직접 뽑고, 룰렛은 가중치에 비례한 확률로 직접 추첨하기 때문에 구조적 편향이 없습니다. youtil 사다리타기 도구도 도착 순열을 먼저 균등하게 뽑은 뒤 그에 맞춰 가로줄을 배치하므로 이 편향이 없습니다.
이 도구의 난수는 어떻게 만들어지나
명단 섞기(팀·순서·자리)는 Fisher-Yates 셔플을 사용합니다. 배열 끝에서부터 각 자리를 아직 확정되지 않은 자리 중 하나와 무작위로 맞바꾸는 방식으로, 모든 순열이 같은 확률로 나오는 균등 셔플의 표준 알고리즘입니다(컴퓨터용 O(n) 구현 원전: Durstenfeld, CACM Algorithm 235, 1964). 가중치 추첨은 Math.random() 값을 가중치 합의 누적 구간에 대응시켜 뽑습니다.
Math.random()이 0 이상 1 미만의 의사난수를 근사 균등 분포로 반환하지만 암호학적으로 안전한 난수는 제공하지 않으므로 보안 관련 용도로 쓰지 말라고 명시합니다(구체적 알고리즘은 ECMAScript 명세가 정하지 않고 브라우저 엔진이 고릅니다). 점심 메뉴·자리 배치·발표 순서 같은 일상 추첨에는 충분히 공정하지만, 경품 추첨처럼 금전·이해관계가 큰 추첨이라면 암호학적 난수(crypto.getRandomValues()) 기반 도구나 공증 절차를 권장합니다.흔한 잘못된 구현이 sort(() => Math.random() - 0.5)입니다. MDN sort 규격상 비교 함수는 같은 쌍에 항상 같은 결과를 줘야 하며, 어기면 동작 자체가 미정의라 편향이 생깁니다. 실제로 2010년 EU 브라우저 선택 화면(browserchoice.eu)이 이 방식을 써서 1만 회 시뮬레이션(IE 엔진)에서 Internet Explorer가 5개 중 마지막 위치에 50.34% 몰리는 편향이 확인됐고(Rob Weir 분석), Microsoft도 알고리즘 수정을 인정했습니다(The Register 2010-03-09 보도). 본 도구는 이 방식을 쓰지 않습니다.
자주 묻는 질문
본 추첨기는 정말 공정한가요?
Math.random()을 사용합니다. 이는 의사난수(pseudo-random)로 완벽한 무작위는 아니지만 실용적인 추첨에는 충분히 공정합니다. [공정성] 탭에서 100~100,000회 시뮬레이션으로 직접 확인 가능. 법적·계약적 효력이 있는 추첨에는 공증 절차를 권장합니다.룰렛에서 가중치는 어떻게 작동하나요?
명단 입력은 어떻게 하면 가장 빠른가요?
팀 나누기는 어떻게 균형을 맞추나요?
자리 배치 4×6에서 이름이 잘려요
사다리타기와 룰렛 중 어느 쪽이 더 공정한가요?
룰렛 결과를 미리 조작할 수 있나요?
참고 자료
- Fisher-Yates 셔플 O(n) 구현 원전 — R. Durstenfeld, “Algorithm 235: Random permutation”, Communications of the ACM 7(7), 1964
- 사다리(아미다쿠지) 통계 분석 — Y. Inoue, “Statistical analysis on Amida-kuji”, Physica A 369(2), 867–876, 2006
- Math.random() 의사난수·보안 경고, Crypto.getRandomValues() — MDN Web Docs, 2026-07 기준 (구체적 알고리즘은 ECMAScript가 규정하지 않고 자바스크립트 엔진 구현에 따름)
- 랜덤 비교자 셔플 편향 실사례 — R. Weir, “Doing the Microsoft Shuffle” (2010) · The Register 보도 (2010-03-09)
- 큰 수의 법칙 (Law of Large Numbers) — 베르누이 정리
공식 출처
- MDN — Math.random()(새 창)developer.mozilla.org
- MDN — Crypto.getRandomValues()(새 창)developer.mozilla.org
- ECMAScript 명세 — Math.random(새 창)tc39.es
- Durstenfeld(1964) CACM Algorithm 235(새 창)doi.org
- 계산 기준
- 도구 알고리즘(Fisher-Yates 셔플·누적 가중치 추첨) 코드 기준 점검 · 편차·사다리 확률표는 빌드 시 계산
- 오류 제보
- 결과가 다르면 contact@youtil.kr로 입력 조건을 알려 주세요. 평일 기준 1~3일 안에 답변합니다.