랜덤은 정말 공정할까? — 의사난수 이야기
가이드
컴퓨터는 사실 완전한 무작위를 스스로 만들지 못합니다. 대신 정해진 계산식으로 예측하기 매우 어려운 숫자열을 만들어 내는데, 이를 의사난수(pseudo-random number)라고 부릅니다.
어떻게 만들어질까
브라우저에는 난수를 만들어 주는 기능이 내장돼 있습니다. 이 기능은 내부 상태값에서 출발해 복잡한 계산을 거쳐 0과 1 사이의 숫자를 반환하고, 반환할 때마다 상태값을 갱신해 다음 숫자를 만듭니다. 사람이 결과를 예측하기는 사실상 불가능합니다.
‘의사’인데 공정한 이유
완전한 무작위가 아니어도, 각 결과가 나올 확률이 균등하고 다음 값을 예측할 수 없다면 추첨·게임 용도로는 충분히 공정합니다. 중요한 것은 ‘특정 항목이 유리하지 않다’는 점인데, 좋은 난수 생성기는 이 성질을 잘 만족합니다.
- 각 항목의 확률이 균등한가 → 공정성의 핵심
- 다음 결과를 예측할 수 없는가 → 조작 불가능성
- 편향된 뽑기(예: 앞자리 우대)를 쓰지 않는가 → 사용 방식의 문제
언제 더 강한 무작위가 필요할까
보안이나 암호처럼 아주 높은 예측 불가능성이 필요한 경우에는 암호학적 난수(crypto)를 씁니다. 하지만 점심 메뉴나 벌칙, 팀 편성 같은 일상적 결정에는 일반 난수로도 전혀 문제가 없습니다.
정리하면, ‘의사난수’라는 이름 때문에 불공정하게 느껴질 수 있지만, 확률이 균등하고 예측이 불가능하다면 추첨에는 완전히 충분합니다.