유틸리티

랜덤 숫자 뽑기, 추첨부터 주사위까지 무작위 번호 생성법

회식 자리에서 발표 순서를 정해야 하는데 가위바위보는 시간이 너무 오래 걸린다. 랜덤 숫자 뽑기로 각자 번호를 하나씩 받으면 10초 만에 끝난다. 추첨, 순서 정하기, 팀 나누기 같은 상황에서 무작위 숫자가 필요한 경우는 의외로 자주 생긴다.

랜덤 숫자가 쓰이는 곳

  • 순서 정하기: 발표, 청소 당번, 좌석 배치
  • 추첨: 이벤트 당첨자 선정, 제비뽑기 대용
  • 게임: 주사위 대용, 보드게임 숫자 결정
  • 학습: 수학 문제 출제용 난수 생성
  • 테스트: 프로그램 테스트용 더미 데이터

공정한 무작위를 위한 조건

머릿속으로 '아무 숫자나' 떠올리면 사실 무작위가 아니다. 사람은 특정 숫자(7, 3 등)를 선호하는 경향이 있다. 진짜 공정한 추첨을 하려면 암호학적 난수 생성기(CSPRNG)를 쓰는 게 맞다.

참고 Math.random()으로 생성한 숫자는 예측 가능성이 있어서 보안 용도에는 적합하지 않다. 추첨이나 게임 용도라면 crypto.getRandomValues 기반 난수가 더 공정하다.

프리셋으로 빠르게 쓰는 법

랜덤 숫자 생성기를 열면 범위와 개수를 직접 설정할 수도 있고, 자주 쓰는 프리셋 버튼도 있다. 1~10, 1~100, 로또(1~45에서 6개), 주사위, 동전 던지기가 미리 설정되어 있어서 터치 한 번이면 결과가 나온다. 중복 제외 옵션을 켜면 같은 숫자가 두 번 나오지 않고, 오름차순 정렬도 가능하다.

숫자가 많을 때는 통계(최솟값, 최댓값, 평균, 합계)도 자동으로 보여주니까 테스트 데이터를 만들 때도 편하다. 결과를 바로 복사할 수 있어서 엑셀이나 채팅창에 붙여넣기만 하면 된다.