정말 공정하게 뽑나요?
브라우저의 암호학적 난수 생성기(crypto.getRandomValues)를 사용해 흔한 Math.random보다 예측하기 어려운 난수를 씁니다. 난수를 인원수로 나눌 때 생기는 미세한 치우침도 없애도록(거부 샘플링) 계산해서, 모든 사람이 뽑힐 확률이 똑같아요.
순서 섞기와 팀 나누기는 어떻게 하나요?
순서 섞기는 피셔–예이츠(Fisher–Yates) 방식으로 가능한 모든 순서가 같은 확률로 나오게 섞습니다. 팀 나누기는 섞은 순서대로 1팀, 2팀, 3팀… 차례로 한 명씩 배정해서 팀 인원 차이가 최대 1명이 되도록 합니다.
사다리타기 결과는 그림 사다리와 같나요?
그림 사다리는 가로줄 배치에 따라 결과가 고르게 섞이지 않을 수 있어요. 여기서는 사다리 대신 참가자와 결과를 완전히 무작위로 짝지어 모든 배정이 같은 확률로 나오게 했습니다. 입력한 이름은 브라우저 밖으로 전송되지 않아요.