CCalculate.Studio

🎲 난수 생성기

이 생성기는 여러분이 정한 범위에서 임의의 정수를 뽑으며, 원하면 중복 없이 뽑습니다. 시계가 아니라 시드로 작동하므로 같은 시드는 언제나 똑같은 결과를 재현합니다. 이 성질은 수업과 재현 가능한 연구, 그리고 과정을 남겨야 하는 모든 사람에게 중요합니다. 다시 뽑으려면 시드를 바꾸세요.

최종 검토일: 2026-07-07100% 무료 · 회원가입 불필요
Google에서 기본으로 추가

이 생성기가 알맞은 용도와 그렇지 않은 용도

의사난수 생성기는 쓰임새에 따라 적합성이 크게 갈립니다. 이것은 빠르고 재현 가능하며 일상적인 용도에서 통계적으로 잘 작동합니다. 그리고 비밀을 만들어 내는 원천으로는 결코 쓸 수 없습니다.

용도적합한가?이유
교육, 시뮬레이션, 표본 추출예결과를 재현할 수 있다는 점이 장점입니다
당첨자 뽑기, 주사위, 복권 번호예, 새 시드와 함께시드를 아는 사람은 결과를 재현할 수 있습니다
비밀번호, 키, 토큰, 세션 식별자아니오출력에서 상태를 복원할 수 있습니다. 비밀번호 생성기를 쓰세요
규제 대상 게임이나 도박아니오인증된 하드웨어나 암호학적 생성기가 필요합니다
  • 범위의 양 끝값이 모두 포함되므로 1에서 100까지의 범위에는 가능한 값이 100개 있습니다.
  • 비복원 추출에서는 뽑는 개수가 범위의 값 개수를 넘을 수 없습니다. 계산기는 조용히 중복시키는 대신 거부합니다.

의사난수 생성기란

의사난수 생성기는 무작위성에 대한 통계 검정을 통과하는 수열을 만들어 내는 결정론적 알고리즘입니다. 물리적 의미에서 무작위는 아닙니다. 고정된 점화식이며, 주어진 시작값인 시드로부터 언제나 같은 수열을 만들어 냅니다.

여기 쓰인 것은 조지 마사글리아가 2003년 Journal of Statistical Software에 발표한 32비트 xorshift 생성기입니다. 어떤 값과 그것을 자리이동한 사본들에 배타적 논리합을 거듭 적용하는 방식이며, 자리이동 세 값은 수열이 반복되기 전에 0이 아닌 모든 32비트 상태를 지나도록 고른 것입니다.

시드를 쓰는 것은 한계가 아니라 의도한 선택입니다. 이 사이트의 모든 계산기는 입력에 대한 순수 함수이며, 그래서 결과가 재현되고 검증됩니다. 여기에 더해 시계 기반 생성기가 줄 수 없는 것을 줍니다. 숫자와 함께 시드를 적어 두면 누구든 여러분의 결과를 그대로 재현할 수 있습니다.

난수 생성기 사용법

  1. 최솟값과 최댓값을 정합니다. 양 끝값 모두 범위에 포함됩니다.
  2. 몇 개를 뽑을지 정합니다.
  3. 중복을 허용할지 정합니다. 비복원 추출에서는 어떤 값도 두 번 나올 수 없으므로 범위에 든 개수보다 많이 뽑을 수 없습니다.
  4. 다른 결과가 필요할 때마다 시드를 바꿉니다. 같은 시드는 언제나 같은 수를 돌려줍니다.

수가 만들어지는 방식

x = x XOR (x << 13); x = x XOR (x >> 17); x = x XOR (x << 5)
u = x / 2^32, 따라서 0 <= u < 1
값 = min + floor(u x (max - min + 1))
범위 안의 값 개수 = max - min + 1

xorshift 점화식은 한 번 뽑을 때마다 32비트 상태를 세 번 변환한 뒤 2^32로 나누어 0 이상 1 미만의 값을 냅니다. 여기에 범위의 크기를 곱하고 내림하면 정수가 됩니다.

비복원 추출은 범위에 대한 부분 피셔-예이츠 셔플을 씁니다. 뽑을 때마다 남은 원소 하나를 자리에 바꿔 넣는 방식이라 한 번의 순회로 균등하게 임의의 부분집합을 고르며, 후보가 줄어들수록 막히는 '뽑고 다시 시도하기' 방식과 달리 멈추지 않습니다.

흔한 실수

  • 비밀이 필요한 곳에 의사난수 생성기를 쓰는 것. 수열은 시드에 의해 전부 결정됩니다.
  • 시드를 바꾸지 않고 새 수를 기대하는 것. 재현 가능성이 핵심이며 시드가 그 조작 장치입니다.
  • 상한값이 제외된다고 여기는 것. 여기서는 범위의 양 끝값이 모두 포함됩니다.
  • 범위에 든 것보다 많은 서로 다른 값을 요청하는 것.
  • 비슷한 값이 이어지는 것을 결함으로 읽는 것. 뭉침은 무작위 수열의 정상적인 성질이며, 오히려 그것이 없는 편이 더 수상합니다.

자주 묻는 질문

같은 시드는 왜 언제나 같은 수를 주나요?

의사난수 생성기는 결정론적 점화식이고 시드가 그 시작 상태이기 때문입니다. 이는 결함이 아니라 장점입니다. 시드를 밝히면 누구든 여러분의 결과를 그대로 재현할 수 있고, 재현 가능한 연구와 수업 시연에는 바로 그것이 필요합니다. 다르게 뽑으려면 시드를 바꾸세요.

경품 추첨에 쓸 만큼 무작위한가요?

비공식 추첨이라면 그렇습니다. 다만 참가자가 예측할 수 없는 시드를 고르고, 결과를 검증할 수 있도록 나중에 그 시드를 공개해야 합니다. 규제 대상 게임이라면 아닙니다. 그런 곳에는 인증된 하드웨어 생성기나 암호학적으로 안전한 알고리즘이 필요합니다.

이것으로 비밀번호를 만들어도 되나요?

안 됩니다. xorshift 생성기의 내부 상태는 짧은 출력만으로도 복원할 수 있어서, 거기서 나온 것은 무엇이든 예측 가능합니다. 대신 운영체제의 암호학적으로 안전한 난수원에서 값을 뽑는 이 사이트의 비밀번호 생성기를 쓰세요.

비복원 추출이란 무엇인가요?

복권 공을 뽑을 때처럼 어떤 값도 한 번을 넘어 나올 수 없다는 뜻입니다. 뽑을 때마다 값 하나가 후보에서 빠지므로 범위에 든 것보다 많이 뽑을 수 없습니다. 다섯 개짜리 범위에서 서로 다른 여섯 값을 뽑는 것은 불가능합니다.

수가 균등하게 분포하나요?

바탕 생성기의 정밀도 안에서는 그렇습니다. 범위의 모든 값이 같은 확률로 나오며, 비복원 방식은 부분 피셔-예이츠 셔플을 써서 주어진 크기의 모든 부분집합을 같은 확률로 고릅니다.

참고 자료

  1. Marsaglia G. Xorshift RNGs. Journal of Statistical Software 2003; 8(14): 1-6. doi:10.18637/jss.v008.i14.
  2. Knuth DE. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd edition. Addison-Wesley, 1997 — random number generation and statistical testing.
  3. Fisher RA, Yates F. Statistical Tables for Biological, Agricultural and Medical Research. Oliver and Boyd, 1938 — the shuffle used for sampling without replacement.
  4. L'Ecuyer P, Simard R. TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software 2007; 33(4): 22.

통계 · 전체 계산기

관련 계산기