참가자 이름을 입력하면 구슬들이 트랙을 굴러 내려가 무작위로 당첨자를 정해요. 돌림판 대신 쓰는 재미있는 추첨 도구예요.
구슬은 매번 새로 굴러요 — 같은 참가자 목록으로 다시 돌려도 지난 결과와 무관해요. 트랙과 장애물 배치가 결과에 영향을 주지만 어느 구슬이 유리한지는 미리 정해지지 않아요.
제비뽑기의 목적은 공정한 결과가 아니라 참가자 모두가 공정하다고 받아들이는 것이에요.
숫자만 툭 나오면 «조작한 거 아니야?» 라는 의심이 남아요. 그래서 이 도구는 구슬이 물리적으로 굴러가는 과정을 보여줘요.
과정이 보이면 결과를 받아들이기 쉬워요. 실제 추첨 방송이 공을 굴리는 장면을 길게 보여주는 것과 같은 이유예요.
물리 시뮬레이션은 시드 기반 난수로 돌아가요 — 결과가 먼저 정해지고 애니메이션이 따라가는 게 아니라, 물리 계산의 결과가 곧 당첨이에요.
순서 정하기 — 발표 순서, 청소 당번, 게임 순서.
당첨자 뽑기 — 이벤트 경품, 회식 자리의 «오늘 쏘는 사람».
의사결정 — 점심 메뉴처럼 모두가 «아무거나» 라고 할 때. 무작위가 논의를 끝내 줘요.
편 가르기 — 팀 나누기는 `/teams` 가 더 편하지만, 소수 인원이면 이걸로도 돼요.
항목마다 가중치를 줄 수 있어요 — 확률을 다르게 하고 싶을 때(예: 지난번에 당첨된 사람의 비중을 낮추기).
무작위는 뭉침(clustering) 을 만들어요. 같은 사람이 연속으로 뽑히는 게 정상이에요.
동전을 20번 던지면 «같은 면 4연속» 이 나올 확률이 절반을 넘어요. 그런데 사람은 그걸 «조작» 으로 느껴요.
진짜 무작위보다 골고루 섞인 것처럼 보이는 게 사람 눈에는 더 «랜덤» 해 보여요. 음악 앱들이 셔플에 «같은 아티스트 연속 방지» 를 넣는 이유예요.
연속 당첨이 문제라면 뽑힌 항목을 빼고 다시 돌리세요. 그게 «비복원 추출» 이고 실제로 공정한 순서 정하기예요.
규칙을 먼저 합의하세요. 몇 명 뽑을지, 재추첨이 있는지, 가중치를 줄지를 돌리기 전에 정해요.
한 번만 돌리세요. «마음에 안 들어서 다시» 가 시작되면 무작위의 의미가 사라져요.
모두가 보는 앞에서 돌리세요. 결과만 전달하면 신뢰가 안 생겨요.
항목을 미리 확인시키세요. 이름이 빠졌거나 중복되면 나중에 문제가 돼요.
이 도구는 mulberry32 라는 시드 기반 의사난수 생성기를 써요. 같은 시드면 같은 결과가 나와요.
«의사(pseudo)» 난수라는 건 계산으로 만든다는 뜻이지 예측 가능하다는 뜻은 아니에요 — 시드를 모르면 결과를 알 수 없어요.
⚠️ 다만 암호학적으로 안전하지는 않아요. 제비뽑기에는 충분하지만 비밀번호나 암호 키에는 쓰면 안 돼요(그건 `crypto.getRandomValues` 의 영역이고, `/password` 가 그걸 써요).
모든 계산이 브라우저에서 이뤄지고 참가자 이름이 서버로 전송되지 않아요.
금전이 걸린 추첨(경품 행사, 분양 등)은 이런 웹 도구로 하지 마세요. 법적 요건과 감사 가능성이 필요해요.
공적 추첨은 대개 공증인 입회나 검증 가능한 난수(공개된 시드와 알고리즘)를 요구해요.
이 도구는 친목과 소규모 의사결정 용도예요. 재미로 쓰기에 충분하고, 그 이상을 주장하지 않아요.
매번 물리 시뮬레이션을 새로 굴려 결과가 무작위로 나와요. 미리 정해진 당첨자는 없어요.
회식 메뉴 정하기, 발표 순서 뽑기, 경품 추첨처럼 돌림판·제비뽑기를 쓰던 자리에 재미를 더해 쓸 수 있어요.