원하는 범위의 랜덤 숫자 생성기
1부터 100 사이의 숫자, 로또 번호 6개, 또는 테스트용 랜덤 값 1,000개가 필요하신가요? 이 랜덤 숫자 생성기는 중복 제외, 정렬, 소수점 옵션을 제공하며 원하는 범위 내에서 숫자를 뽑아줍니다. 브라우저의 암호학적으로 안전한 난수 생성 기능을 사용하므로 결과를 예측할 수 없고 균등하게 분포되며, 어떤 데이터도 서버로 전송되지 않습니다.
주요 기능
- 모든 범위: 음수 및 매우 큰 값을 포함한 모든 범위의 숫자를 생성합니다.
- 단일 및 다중 생성: 클릭 한 번으로 최대 10,000개의 숫자를 생성할 수 있습니다.
- 중복 제외: 주머니에서 공을 뽑듯 숫자를 추출하며, 범위가 매우 넓어도 빠르게 처리됩니다.
- 소수점 지원: 최대 소수점 6자리까지 생성할 수 있습니다.
- 정렬: 결과를 오름차순으로 정렬하고 목록 형태로 복사할 수 있습니다.
- 편향 없는 결과: 기각 표본추출(rejection sampling)을 통해 범위 내의 모든 값이 동일한 확률로 나오도록 보장합니다.
자주 사용하는 용도
게임 및 의사 결정. 가상 주사위 굴리기(1~6), 순서 정하기, 랜덤 페이지나 질문 선택하기, 또는 공정하게 결정을 내릴 때 사용합니다.
추첨 및 경품 행사. 각 참가자에게 번호를 부여한 후 중복 없이 당첨자를 뽑습니다. 안전한 난수 소스를 사용하므로 누구도 결과를 예측하거나 조작할 수 없습니다.
로또 번호 추첨. 로또를 위한 고유한 숫자 조합을 생성합니다. 생일과 같은 흔한 패턴을 피할 수 있어 당첨금을 다른 사람과 나눠 가질 확률이 줄어듭니다.
교육 및 연구. 번호가 매겨진 목록에서 무작위 표본을 추출하거나, 참가자를 그룹에 배정하거나, 연습 문제를 만들 때 유용합니다.
소프트웨어 테스트. 특정 범위 내의 테스트 입력값, ID 또는 샘플 데이터셋을 생성합니다.
"공정한" 난수가 생성되는 원리
단순한 방식은 큰 난수 값을 범위의 크기로 나눈 나머지를 사용합니다. 하지만 이 방식은 범위가 난수 소스로 정확히 나누어떨어지지 않을 때 특정 숫자가 더 자주 나오는 편향이 발생할 수 있습니다. 본 도구는 편향을 유발하는 값을 버리고 다시 뽑는 방식("기각 샘플링")을 사용하므로, 1~3의 범위를 지정하면 각 숫자가 정확히 3분의 1의 확률로 공정하게 생성됩니다.
중복 없는 난수 추출을 위해 이 도구는 부분 피셔-예이츠 셔플(Fisher–Yates shuffle)을 수행합니다. 개념적으로는 전체 범위를 섞은 뒤 앞의 숫자들을 가져오는 것과 같지만, 전체 목록을 생성하지는 않으므로 1부터 1,000,000,000 사이에서 10개의 숫자를 뽑아도 즉시 처리됩니다.