How can a good pseudo-random number generator be made?
There are two answers, really depending on your specifications and how your generator will be evaluated.

If all you need is to have a PRNG with statistically excellent random, but really don't care about predictability or cryptographic considerations, go for something simple like a Mersenne Twister.

If you actually need some effective stream-cipher, look up on existing ciphers. Yet again, I'd go for something simple, like using an AES in CTR.

Note: If you intend to use your solution for any real usage crypto, then by all means please read papers &amp; think about using an existing solution, yours will most likely not be error-proof in the implementation