| Pure software can't actually generate mathematically-provable random numbers unless given purely random data to start with. So pseudo removes total dependency on physical events. Why you don't want to be dependent on physical events: - You never know if physical events are truly random unless you test them. Your physical RNG source may be broken or compromised. - A good strategy is to use multiple physical sources of randomness, and this can be any number of things, including modern CPUs with RDRAND (if you trust them), USB attached devices, sampling ADC noise on your sound card, timing network events, etc. Any/all of that has to be combined somehow anyway. Getting data from some of these may be slow. - So if an operating system needs random numbers quickly, for SSL key generation, UUIDs, nonces, etc. it should use properly seeded pseduorandom numbers. |
The PRNG in the linked page isn't very good but in general PRNGs are super useful in the real world even if they aren't truly random, just so long as they have some source of entropy to occasionally mix into the PRNG.