← 홈

🎲 난수 생성기

범위 내 난수를 생성하세요.

點擊「Generate」

이 도구란?

난수 생성기(RNG)는 각 숫자가 이전 숫자와 예측 가능한 관계가 없는 시퀀스로 숫자를 생성하는 도구 또는 알고리즘입니다. 난수 생성은 컴퓨팅, 암호화, 통계, 게임, 과학 시뮬레이션 및 일상적인 의사 결정의 기본입니다. 두 가지 범주가 있습니다. 수학적 알고리즘을 사용하여 무작위로 보이지만 실제로는 결정적인 시퀀스를 생성하는 의사 난수 생성기(PRNG)와 대기 ​​소음, 방사성 붕괴 또는 열 잡음과 같은 물리적 현상에서 무작위성을 파생하는 실제 난수 생성기(TRNG)입니다. 복권 번호 선택, 가상 주사위 굴리기, 무작위 샘플 선택, 재생 목록 섞기 등 대부분의 일상적인 애플리케이션에는 고품질 PRNG가 완벽하게 적합합니다. 암호화 키 또는 세션 토큰 생성과 같이 보안에 민감한 애플리케이션의 경우 내부 상태가 발견되면 표준 PRNG를 예측할 수 있으므로 암호학적으로 안전한 의사 난수 생성기(CSPRNG)가 필요합니다. 이 도구는 고유한(반복되지 않는) 결과에 대한 옵션과 샘플링, 추첨 및 시뮬레이션을 위한 사용자 정의 가능한 수량을 통해 지정한 범위 내에서 난수를 생성하는 쉬운 방법을 제공합니다.

계산 원리

PRNG는 일반적으로 Mersenne Twister 또는 선형 합동 생성기(LCG)와 같은 알고리즘을 사용합니다. 기본 LCG 공식은 다음과 같습니다.X(n+1) = (a × X(n) + c) mod m여기서 X는 시퀀스 값, a는 승수, c는 증분, m은 모듈러스입니다. 초기값 X(0)을 시드(seed)라고 합니다. PRNG는 결정적이므로 동일한 시드가 항상 동일한 시퀀스를 생성합니다. 자바스크립트의수학.랜덤()PRNG를 사용하며 게임 및 UI 효과에 적합하지만 보안을 위해 사용해서는 안 됩니다. 암호화 목적으로 다음을 사용합니다.crypto.getRandomValues()브라우저에서 또는기미Python에서는 운영 체제의 CSPRNG를 활용합니다. 공정한 셔플링을 위해서는피셔-예이츠 알고리즘배열을 반복하면서 순서가 섞이지 않은 나머지 부분에서 무작위로 선택된 요소로 각 요소를 교체하여 완벽하게 균일한 순열을 보장합니다.
Ad

사용 방법

이 도구를 사용하여 난수를 생성하는 것은 간단합니다.

  1. 범위의 최소값을 입력하세요.
  2. 범위의 최대값을 입력하세요.
  3. 생성할 난수 수를 지정합니다.
  4. 고유 번호만(반복 없음)할지 아니면 중복을 허용할지 선택하세요.
  5. 결과를 즉시 확인하려면 생성을 클릭하세요. 이 도구는 지정된 범위에 걸쳐 균일하게 분포된 숫자를 생성합니다. 즉, 각 숫자가 선택될 확률이 동일합니다. 각 선택이 고유해야 하는 추첨 또는 샘플링과 같은 애플리케이션의 경우 고유 옵션을 활성화하십시오. 필요한 만큼 새로운 숫자 세트를 생성할 수 있습니다. 클릭할 때마다 이전 결과를 기억하지 않고 독립적인 새로운 추첨이 생성됩니다.

참조 표

사용 사례일반적인 범위메모
복권(6/49)1~49, 고유 6개반복 없음, 클래식 형식
표준 주사위 굴림1–6하나 이상의 주사위
추첨 추첨1–100+고유 티켓 번호
무작위 샘플링1~N통계 조사, A/B 테스트
보드게임 스피너1–12게임 메커니즘
동전 뒤집기0–1바이너리 결정
암호화 키전체 바이트 범위Math.random이 아닌 CSPRNG가 필요합니다.

자주 묻는 질문

자주 묻는 질문

의사 무작위와 실제 무작위의 차이점은 무엇입니까?
의사 난수 생성기(PRNG)는 수학적 알고리즘을 사용하여 통계적으로 무작위로 보이지만 완전히 결정적인 시퀀스를 생성합니다. 동일한 시작 시드가 주어지면 항상 동일한 시퀀스를 재생산합니다. TRNG(진정 난수 생성기)는 대기 소음(Random.org에서 사용), 방사성 붕괴 또는 전자 열 소음과 같은 예측할 수 없는 물리적 프로세스에서 무작위성을 파생합니다. TRNG는 비결정적이지만 작동 속도가 느리고 비용이 더 많이 듭니다. 대부분의 애플리케이션에서 잘 설계된 PRNG는 실제 무작위성과 구별할 수 없습니다.

컴퓨터가 생성한 난수를 예측할 수 있나요?
공격자가 내부 상태를 추론하기에 충분한 출력을 관찰하면 표준 PRNG를 예측할 수 있습니다. 이것이 PRNG를 암호화 키, 비밀번호 생성 또는 실제 돈을 사용하는 도박 시스템과 같이 보안에 민감한 목적으로 사용해서는 안 되는 이유입니다. 암호학적으로 안전한 PRNG(CSPRNG)는 많은 출력을 관찰하더라도 미래 또는 과거 값을 예측할 수 없도록 설계되어 보안 애플리케이션에 적합합니다.

씨앗이란 무엇이며 왜 중요한가요?
시드는 PRNG 시퀀스를 시작하는 초기 입력 값입니다. 동일한 시드는 항상 동일한 숫자 시퀀스를 생성하므로 재현 가능한 시뮬레이션 및 디버깅에 유용합니다. 시드를 변경하면 완전히 다른 순서가 생성됩니다. 대부분의 응용 프로그램은 시스템 시계 또는 엔트로피 소스에서 자동으로 PRNG를 시드하지만 고정 시드를 수동으로 설정하는 기능은 과학적 재현성에 유용합니다.

Random.org는 어떻게 진정한 무작위성을 생성합니까?
Random.org는 대기 소음(라디오 수신기에 의해 포착되어 전 세계의 번개로 인해 생성되는 무선 소음)을 엔트로피 소스로 사용합니다. 대기 소음은 기본적으로 예측할 수 없기 때문에 결과 숫자는 의사 무작위가 아닌 진정한 무작위로 간주됩니다. 따라서 Random.org는 진정한 무작위성이 중요한 고위험 그림, 도박 및 과학 연구에 적합합니다.

팁과 조언

통계 샘플링에 난수를 사용할 때는 항상 표본 크기가 대표성을 가질 만큼 충분히 큰지 확인하세요. 의미 있는 통계 추론을 위한 일반적인 지침은 최소 30개 항목입니다. 추첨 및 콘테스트의 경우 고유 번호 전용 옵션을 사용하여 중복 당첨을 방지하고 방법론을 문서화하여 투명성과 공정성을 유지하세요. 동료 검토를 위해 재현 가능해야 하는 시뮬레이션을 실행하는 경우 고정 시드를 설정하고 결과와 함께 기록하십시오. 보안 애플리케이션에는 Math.random() 또는 유사한 PRNG를 사용하지 마십시오. 항상 JavaScript의 crypto.getRandomValues() 또는 Python의 secrets 모듈과 같은 CSPRNG를 사용하십시오. 카드 게임 및 셔플링의 경우 편향을 도입하는 순진한 셔플 구현과 달리 완벽하게 균일한 임의 순열을 보장하는 Fisher-Yates 알고리즘을 사용합니다. 암호화를 위한 숫자를 생성할 때 가능한 가장 넓은 범위(전체 바이트 값 0~255)를 사용하고 알고리즘 요구 사항을 충족할 만큼 충분한 바이트를 생성하십시오. AES-256 키에는 정확히 32바이트의 암호화 임의성이 필요합니다.

Ad