동아리 회식 장소를 정하는데 의견이 갈린다. "제비뽑기로 정하자"까지는 합의했는데, 종이를 접어서 하자니 누가 섞느냐를 놓고 또 논쟁이 시작된다. 이럴 때 랜덤 숫자 생성기 하나면 2초 만에 끝난다.
어디에 쓸 수 있나
무작위 번호가 필요한 상황은 의외로 많다.
- 팀 배정: 30명을 6팀으로 나눌 때, 1~6 랜덤 배정
- 당첨자 추첨: 이벤트 참가자 번호 중 무작위로 N명 선정
- 발표 순서: 1~10번 중 발표 순서를 랜덤으로 결정
- 좌석 배치: 시험장이나 교실 좌석을 무작위로 배정
- 보드게임: 주사위가 없을 때 1~6 랜덤으로 대체
Step 1. 범위와 개수 설정
랜덤 숫자 생성기에 접속하면 최솟값과 최댓값을 입력하는 필드가 있다. 뽑고 싶은 숫자의 범위를 지정한다.
| 용도 | 최솟값 | 최댓값 | 개수 |
|---|---|---|---|
| 주사위 | 1 | 6 | 1개 |
| 로또 번호 | 1 | 45 | 6개 (중복 제외) |
| 당첨자 10명 | 1 | 참가자 수 | 10개 (중복 제외) |
| 동전 던지기 | 1 | 2 | 1개 |
Step 2. 옵션 설정
단순히 숫자를 뽑는 것 외에 몇 가지 옵션을 조합할 수 있다.
- 중복 제외
- 당첨자 추첨처럼 같은 번호가 두 번 나오면 안 되는 경우에 체크한다. 로또 번호 생성도 마찬가지다.
- 오름차순 정렬
- 생성된 숫자를 작은 순서대로 정렬해서 보여준다. 번호를 정리할 때 편하다.
- 소수점 포함
- 정수가 아닌 소수점 숫자가 필요한 경우에 선택한다. 통계 실험이나 시뮬레이션에 쓰인다.
Step 3. 생성 및 확인
생성 버튼을 누르면 즉시 결과가 나온다. 생성 기록이 자동 저장되기 때문에, 추첨 결과에 이의가 제기되더라도 기록을 보여주면 된다.
TIP 추첨의 공정성이 중요한 상황이라면, 참가자들이 함께 보는 자리에서 화면을 공유하며 생성하는 게 좋다. 미리 뽑아놓으면 조작 의심을 받을 수 있다.
프리셋 활용하기
자주 쓰는 설정은 프리셋으로 빠르게 실행할 수 있다.
- 로또: 1~45 범위에서 중복 없이 6개 자동 생성
- 주사위: 1~6 범위에서 1개 생성
- 동전 던지기: 1(앞면) 또는 2(뒷면) 중 1개
프리셋을 선택하면 범위와 개수가 자동으로 채워지니, 버튼만 누르면 된다.
컴퓨터가 만드는 "랜덤"은 진짜 무작위인가
엄밀히 말하면 컴퓨터의 난수는 "의사 난수(pseudo-random)"다. 알고리즘에 의해 생성되기 때문에 완벽한 무작위는 아니다. 하지만 브라우저가 제공하는 crypto.getRandomValues 같은 암호학적 난수 생성기는 예측이 사실상 불가능한 수준이라, 일상적인 추첨이나 게임 용도로는 충분히 공정하다.
종이 접어서 섞는 제비뽑기보다 디지털 랜덤 생성기가 훨씬 공정하다. 섞는 사람의 손 습관이나 종이 크기 차이 같은 변수가 없으니까.