모임에서 벌칙 당첨자를 뽑는데 가위바위보로 했더니 시간이 너무 걸렸다. 6명 중 1명만 뽑으면 되는 건데, 라운드가 4번이나 돌아갔다. 사다리타기를 만들 여유도 없었고, 결국 핸드폰으로 숫자를 뽑아서 5초 만에 끝냈다.
추첨이 필요한 순간, 생각보다 많다
- 팀 배정: 30명을 5팀으로 나눌 때, 1~5 랜덤 배정
- 발표 순서: 누가 먼저 할지 정할 때
- 이벤트 당첨자: 응모자 중 n명을 공정하게 선정할 때
- 좌석 배치: 시험이나 행사에서 무작위 자리 배정
- 식사 메뉴: 점심 뭐 먹을지 못 정할 때도 숫자로 결정 가능
랜덤 숫자 뽑는 법
번호를 하나 뽑든, 여러 개를 한꺼번에 뽑든 랜덤 숫자 생성기에서 범위와 개수만 지정하면 된다.
- 최소값과 최대값을 입력한다 (예: 1~30)
- 뽑을 개수를 설정한다 (예: 5개)
- 중복 제외 옵션을 켜면 같은 숫자가 두 번 나오지 않는다
- 생성 버튼을 누르면 결과가 바로 나온다
TIP 오름차순 정렬 옵션을 함께 켜면 결과가 작은 수부터 순서대로 나온다. 로또 번호처럼 정렬된 형태가 필요할 때 편하다.
로또 번호도 뽑을 수 있을까
프리셋에 로또 옵션이 있어서, 버튼 하나로 1~45 중 6개를 중복 없이 뽑을 수 있다. 물론 당첨 확률이 올라가는 건 아니다. 로또 번호는 완전한 랜덤이기 때문에 어떤 생성기를 써도 확률은 동일하다(약 814만분의 1). 다만 매주 번호를 직접 고르는 수고를 줄이고 싶을 때 쓸 만하다.
공정한 추첨의 조건
추첨이 공정하려면 두 가지가 보장되어야 한다. 첫째, 모든 참가자에게 동일한 확률이 주어져야 하고, 둘째, 결과를 미리 예측하거나 조작할 수 없어야 한다. 암호학적 난수 생성기(CSPRNG)를 쓰는 도구라면 이 두 조건을 충족한다. 단순한 Math.random()보다 예측 불가능성이 높다.
가위바위보 5라운드 돌리는 것보다, 숫자 한 번 뽑는 게 빠르고 공정하다.