SpinFlow 블로그 · 2026-04-10

진짜 랜덤이란 무엇인가: 컴퓨터는 어떻게 랜덤 숫자를 만드는가

컴퓨터가 만드는 랜덤은 진짜 랜덤일까요? 의사 난수(PRNG)와 진성 난수(TRNG)의 차이, 로또·암호화·게임에서 랜덤이 쓰이는 방식을 설명합니다.

글 요약

컴퓨터가 만드는 랜덤은 진짜 랜덤일까요? 의사 난수(PRNG)와 진성 난수(TRNG)의 차이, 로또·암호화·게임에서 랜덤이 쓰이는 방식을 설명합니다. 본문은 브라우저에서 전체 내용과 함께 표시됩니다.

로또 번호 생성기, 게임 아이템 드랍, 암호화 키... 모두 '랜덤'에 의존합니다. 그런데 컴퓨터는 진짜 랜덤을 만들 수 있을까요? 무료 랜덤 번호 생성기로 직접 확인해보세요.

의사 난수(PRNG) vs 진성 난수(TRNG)

의사 난수 (PRNG)

  • •수학 알고리즘으로 생성
  • •시드(seed)값이 같으면 같은 수열
  • •빠르고 예측 가능 → 게임·시뮬레이션에 적합
  • •예: Math.random(), Java Random

진성 난수 (TRNG)

  • •물리적 현상(열잡음, 방사선) 활용
  • •완전히 예측 불가능
  • •느리지만 진짜 랜덤 → 암호화 키에 필수
  • •예: 하드웨어 보안 모듈(HSM)

분야별 랜덤 활용 방식

🔐 암호화

CSPRNG(암호학적으로 안전한 난수) 사용 — 예측 불가능성이 생명

🎰 로또·복권

물리적 기계(공 추첨) 또는 TRNG — 조작 방지를 위해 하드웨어 랜덤

🎮 게임 드랍률

PRNG로 충분 — 빠른 속도와 재현 가능성이 중요

📊 통계 시뮬레이션

PRNG + 고정 시드 — 같은 조건에서 재현 가능해야 함

💡 브라우저의 Math.random()은 PRNG라 암호화에 절대 사용 금지. 보안이 필요한 경우 crypto.getRandomValues()를 사용하세요.


일상의 결정에는 완벽한 랜덤이 필요하지 않습니다. SpinFlow 로또 번호 생성기나 주사위 굴리기로 재미있고 공정한 결정을 내려보세요.

관련 도구와 참고 자료