본문으로 바로가기
COMMUNITY모든 이야기

컴퓨터한테 “아무 숫자나 골라봐”라고 하면 생기는 문제

빗방울 2026.11.01 10:50 4분 읽기 조회 42 · 추천 2

초당 수십억 번씩 계산하는 기계한테 숫자 하나 아무거나 고르라고 하면, 은근히 까다로운 문제가 된다.

컴퓨터는 정해진 규칙을 정확하게 실행한다. 같은 상태에서 같은 입력을 넣고 같은 계산을 하면 결과도 같다. 그런데 “아무 규칙 없이 하나 골라봐”라니. 일을 너무 잘해서 생긴 문제 같기도 함.

그래서 흔히 쓰는 방법은 규칙으로 계산하되, 결과는 마구 섞인 것처럼 보이게 만드는 것이다. 이게 의사난수다.

출발점이 되는 값, 흔히 ‘시드’라고 부르는 것을 정해두고 숫자열을 만들어낸다. 같은 생성기에 같은 시드를 넣고 같은 순서로 호출하면 결과를 다시 재현할 수 있다. 게임에서 같은 시드로 같은 맵을 만드는 방식이 이런 성질을 활용한다.

‘가짜 난수’라고 하면 싸구려처럼 들리지만, 실험이나 시뮬레이션에서는 재현성이 오히려 장점이다. 문제가 생긴 상황을 똑같이 다시 돌려볼 수 있으니까.

다만 암호키를 만들 때는 사정이 달라진다. 보기에는 뒤죽박죽이어도 누군가 다음 값을 계산해낼 수 있다면 곤란하다. 파이썬도 일반적인 random과 보안 용도의 secrets를 구분해 둔다. 랜덤처럼 보이는 것과 남이 예측하기 어려운 것은 다른 조건이다.

결국 컴퓨터가 바깥세상을 엿본다

계산만으로 새로운 불확실성을 만들어낼 수 없다면, 물리적인 현상에서 재료를 가져오면 된다. 전자회로의 잡음이나 예측하기 어려운 사건의 발생 시점 등을 이용하는 식이다.

실제로 RANDOM.ORG는 대기 잡음을 난수의 원천으로 사용한다고 설명한다. 숫자를 뽑으려고 하늘의 잡음을 듣는 셈이다.

더 묘한 사례는 Cloudflare의 라바 램프다. 조명 안에서 끈적한 덩어리가 올라갔다 내려오는 그 램프. 회사가 공개한 LavaRand 시스템은 램프들을 카메라로 촬영하고, 예측하기 어려운 영상 변화를 난수 생성에 필요한 재료로 활용한다.

램프 사진을 그대로 암호키로 쓰는 건 아니다. 다른 난수원과 결합해 보안용 난수 생성에 보탠다. 인테리어 소품처럼 보이는 물건이 보안 시스템의 일부라는 게 재미있는 부분.

물리 현상을 쓴다고 끝나는 것도 아니다. 센서에 편향이 있거나 장치가 고장 나면 출력이 한쪽으로 쏠릴 수 있다. 무엇을 측정하는지, 어떻게 처리하는지, 고장 났을 때 알아차릴 수 있는지도 중요하다. ‘진짜 랜덤’이라는 이름만 붙이면 모든 문제가 해결되는 건 아니다.

그런데 우리는 랜덤을 보면 의심한다

공정한 동전을 서로 독립적으로 여섯 번 던진다고 해보자.

앞 앞 앞 앞 앞 앞
앞 뒤 뒤 앞 뒤 앞

첫 번째는 뭔가 조작 같고, 두 번째는 꽤 랜덤하게 느껴진다. 하지만 저렇게 정확히 지정된 두 순서가 나올 확률은 각각 1/64로 같다. 앞뒤가 섞인 순서 전체를 묶으면 경우의 수가 많아지지만, 특정 순서 하나끼리 비교하면 차이가 없다.

앞면이 다섯 번 연속 나왔어도, 독립적인 공정한 동전이라면 다음 앞면 확률은 여전히 1/2다. 동전은 앞에서 무슨 일이 있었는지 장부를 쓰지 않는다.

그러니까 컴퓨터는 규칙 없이 숫자를 고르려고 애쓰고, 사람은 그렇게 나온 숫자에서 규칙을 찾아내려고 애쓴다. 어렵게 랜덤을 만들어놨더니 “이거 왜 같은 게 연속으로 나옴?”이라는 항의가 돌아오는 구조 ㅋㅋ

음악 셔플도 같은 가수가 연달아 나오면 괜히 랜덤이 아닌 것 같지 않음?


더 읽어볼 자료: Python의 의사난수와 보안 용도 구분 · RANDOM.ORG의 난수 설명 · Cloudflare의 LavaRand 소개

모든 이야기1445

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1445개의 이야기
댓글