난수 생성기
암호학적으로 강력한 정수·소수 난수, 중복 없는 추첨 모드와 편리한 프리셋 제공
빠른 프리셋
이 도구에 대하여
이 난수 생성기는 선택한 최솟값과 최댓값 사이에서 예측할 수 없는 숫자를 생성합니다. 정수 또는 원하는 소수 자릿수의 소수를 생성하고, 필요한 만큼 한 번에 뽑을 수 있으며, "중복 없음"을 켜면 반복 없이 공정하게 추첨할 수 있어 경품 추첨, 당첨자 선정, 복권 번호에 안성맞춤입니다. 숫자는 브라우저의 암호학적 난수(crypto.getRandomValues)와 거부 샘플링에서 나오므로 범위 내 모든 값이 동일하게 나올 확률을 가집니다. 내장 프리셋은 주사위 굴리기, 동전 던지기, 복권, PIN 코드를 다룹니다.
사용 방법
- 1 숫자를 뽑을 범위의 최솟값과 최댓값을 설정합니다.
- 2 생성할 숫자 개수를 선택하고 정수 또는 소수를 고릅니다.
- 3 반복 없는 추첨(예: 복권)을 원하면 "중복 없음"을 체크합니다.
- 4 생성을 누른 뒤 결과를 복사하거나, 주사위·동전·복권·PIN 프리셋을 사용하세요.
작동 원리
난수 생성기에서는 진정한 공정성이 중요합니다. 이 도구는 일반적인 Math.random 대신 암호학적으로 안전한 난수원인 Web Crypto API의 crypto.getRandomValues를 사용합니다. 원시 32비트 난수 값을 편향 없이 범위에 매핑하기 위해 거부 샘플링을 씁니다. 분포를 왜곡할 값(범위가 2³²를 정확히 나누지 못하기 때문)은 버리고 다시 뽑아, 최솟값부터 최댓값까지 모든 정수가 정확히 같은 확률을 갖습니다. "중복 없음" 모드는 부분 피셔–예이츠 셔플을 수행해 비복원으로 서로 다른 값을 뽑는데, 카드 한 벌을 공정하게 섞는 것과 같은 알고리즘입니다. 소수 모드는 [0,1) 구간의 균등 값을 범위에 맞춰 확장하고 선택한 자릿수로 반올림합니다. 모든 처리는 브라우저에서 로컬로 이루어지며 서버로 아무것도 전송하지 않습니다.
자주 묻는 질문
이 숫자들은 정말 무작위인가요?
Math.random보다 훨씬 강력하고 공정한 추첨과 게임에 적합한 브라우저의 암호학적으로 안전한 생성기(crypto.getRandomValues)를 사용합니다. 기술적으로는 의사난수이지만 실제로는 예측할 수 없습니다.
반복 없이 숫자를 뽑으려면 어떻게 하나요?
정수 모드에서 "중복 없음"을 켜세요. 그러면 복권처럼 비복원으로 서로 다른 값을 뽑습니다. 범위 내 서로 다른 정수 개수보다 많은 숫자는 뽑을 수 없습니다.
정수 대신 소수를 생성할 수 있나요?
예. 소수로 전환하고 원하는 소수 자릿수를 설정하면 각 결과는 범위 내 균등 값을 그 정밀도로 반올림한 값입니다.
제 데이터가 어딘가로 전송되나요?
아니요. 모든 생성이 브라우저에서 로컬로 이루어지므로 입력하거나 생성한 어떤 것도 기기를 벗어나지 않습니다.
관련 도구
숫자 집합을 요약하려면 통계 계산기를 사용해 보세요. 진법 변환에는 진법 변환기를, 빠른 계산에는 백분율 계산기를 참고하세요.