To avoid this issue the “seed” needs to be updated at regular intervals and be random. Classically, seeds are chosen using signals which are complex and hard to predict, such as the number of clicks a person performs with a mouse. This kind of random number generation is often called pseudo-random, as despite appearing random their generation at a fundamental level is deterministic.
The problem with pseudo-random
In some applications, the distinction between a pseudo and a true random number is irrelevant. Take for example video games; RNGs are used to generate content, or determine the outcome of battles in a single player game. This is sufficiently random for this application, therefore it is not necessary to use a true random number generator.
However, when pseudo-random number generators are used for cryptography they can be exploited to obtain personal information, or intercept personal communications. This is a very real problem; in November 2017 a group of scientists from several universities showed that the widely used crypto-system RSA, could be attacked by exploiting its poor random number generation.
Currently, the best solutions are based on hard to predict random events. Hardware random-number generators (HRNGs) produce numbers which are much more difficult to predict than pseudo-random numbers, because they are based on physical processes.These could include thermal noise, radioactive decay, or shot noise through an electronic circuit. Cloudflare, an online security company, has a wall of lava lamps, which record how the wax inside moves. This produces a hard to predict sequence of random numbers.