In most of the programming languages, random or rand function are returning pseudo random numbers with periods or hidden structures. See https://www.random.org/analysis/ for a visual compare between true random number generator and pseudo-random number generator. C++ uses linear congruential generators (LCG) to generate random numbers, which is also pseudo-random. However, it can pass several randomness tests, so it looks sufficiently random in most of the cases.

In most of the programming languages, random or rand function are returning pseudo random numbers with periods or hidden structures. See https://www.random.org/analysis/ for a visual compare between true random number generator and pseudo-random number generator. C++ uses linear congruential generators (LCG) to generate random numbers, which is also pseudo-random. However, it can pass several randomness tests, so it looks sufficiently random in most of the cases.