난수 생성(亂數生成, Random Number Generation)은 예측할 수 없는 수 또는 신호를 생성하는 과정을 의미한다. 이 과정은 컴퓨터 과학, 통계학, 암호학 등 다양한 분야에서 널리 사용된다. 난수는 일반적으로 특정한 패턴이나 규칙 없이 생성되며, 이는 무작위성을 부여하는 중요한 요소이다. 난수 생성기는 일반적으로 알고리즘을 사용하거나 물리적 현상을 이용해 난수를 생성한다.
난수 생성의 방식은 크게 두 가지로 나눌 수 있다. 첫 번째는 의사 난수 생성기(Pseudorandom Number Generator, PRNG)로, 주어진 초기값(seed)을 바탕으로 수치적으로 알고리즘을 통해 난수를 생성한다. 이 방식은 빠르고 효율적이지만, 초기값이 같으면 동일한 난수 시퀀스가 생성된다는 점에서 완전한 무작위성을 제공하지는 않는다. 따라서 민감한 보안 애플리케이션에서는 이 방법이 한계가 있다.
두 번째 방식은 진정한 난수 생성기(True Random Number Generator, TRNG)로, 물리적인 현상이나 수준에서 예측할 수 없는 데이터를 기반으로 한다. 예를 들어, 전자기파의 잡음, 고온의 열잡음 등을 통해 난수를 생성할 수 있다. 이러한 방식은 더 높은 수준의 무작위성을 제공하지만, 일반적으로 성능이 떨어지며, 생성 속도가 느릴 수 있다.
난수 생성은 다양한 애플리케이션에서 중요한 역할을 한다. 예를 들어, 컴퓨터 시뮬레이션, 게임 개발, 통계 표본 추출, 암호키 생성 등에 사용된다. 특히, 암호학에서는 안전하고 예측 불가능한 난수를 생성하는 것이 매우 중요한데, 이는 망설임 없는 데이터 보호와 정보 보안을 보장하기 위해 필수적이다. 따라서 난수 생성 기술의 발전은 여러 분야에서 지속적으로 연구되고 있다.