랜덤 함수 개요 컴퓨터는 명령어와 알고리즘을 기반으로 동작하는 결정론적인 기계다. 이런 특성 때문에, 컴퓨터는 완전히 무작위적인 값을 자체적으로 생성하는 것이 기본적으로 어렵다. 그렇지만, 멀티코어 컴퓨터의 경우 각 코어 간의 타이밍 차이나 상호 작용으로 인한 비결정성을 활용하여 어느 정도의 무작위성을 가진 값을 생성할 수 있다. 그렇지만 이렇게 생성된 값은 완전한 엔트로피를 기반으로 하는 '진정한' 난수에 비해 일정한 제한이 있을 수 있다. C++에서는 여러 방법으로 이러한 무작위 값을 생성할 수 있다. 대표적인 방법으로는 C-style의 rand() 함수, C++11 이후에 도입된 라이브러리, 그리고 하드웨어 기반의 난수 생성기를 사용하는 std::random_device 클래스 등이 있다. 이 글에..