난수 생성기
crypto.getRandomValues · 균등 · 브라우저 내
crypto.getRandomValues에서 암호학적 임의 정수 또는 소수를 추출합니다. 본 페이지는 거부 표본 추출을 사용하므로 결과는 어떤 범위에서도 균등합니다 — 모듈로 편향이 없습니다. 범위, 개수, 소수 자릿수, 정렬 순서, 출력 구분자, 고유 전용 모드를 설정할 수 있습니다.왜 이것이 "진짜 난수"인가
브라우저는 두 가지 임의 소스를 노출합니다: Math.random()은 빠르지만 실행 단위로 결정적인 의사 난수 생성기이고, crypto.getRandomValues()는 운영체제의 엔트로피 풀에서 시드되는 암호학적으로 안전한 RNG입니다 — TLS 세션 키 생성에 사용되는 것과 동일한 소스입니다. 본 페이지는 추출하는 모든 값에 대해 후자를 사용합니다.
모듈로 편향 피하기
소박한 RNG-에서-정수 구현은 rand() % n을 합니다 — n이 RNG 워드 크기를 균등하게 나누지 못할 때 범위의 낮은 끝에 약간 더 많은 가중치를 줍니다. 편향은 작지만 실재하며 수백만 번의 추출에서는 사소하게 검출 가능합니다.
소수 모드
소수를 요청하면 본 페이지는 crypto.getRandomValues의 53비트에서 [0, 1)의 균등 값을 그려서 요청한 범위로 스케일합니다. 최대 15자리의 정밀도가 가능합니다 — IEEE-754 배정밀도 부동소수점의 실용적 한계, 즉 JavaScript 숫자입니다.
고유 모드
중복 없음이 켜져 있으면 본 페이지는 정수 범위에 대해 부분 Fisher–Yates 셔플을 사용해 균등 분포의 고유 선택을 보장합니다 — 비복원 공정 표본 추출의 표준 접근법입니다(카드 셔플이나 재추첨 없는 로또에 사용되는 동일한 알고리즘).
개인정보
모든 값은 로컬에서 생성됩니다. 본 페이지는 초기 정적 로드 후 네트워크 요청을 하지 않으며 분석 스크립트도 없습니다. 입력이나 생성된 값 어느 것도 페이지를 떠나지 않습니다.