According to this paper,
Ideally, a pseudorandom number generator would produce a stream of numbers that:
- are uniformly distributed,
- are uncorrelated,
- never repeats itself,
- satisfy any statistical test for randomness,
- are reproduceable (for debugging purposes),
- are portable (the same on any computer),
- can be changed by adjusting the initial "seed" value,
- can easily be split into many independent subsequences
- can be generated rapidly using limited computer memory
But, as the paper suggests, it is impossible to satisfy all criteria simultaneously. I'm curious to know how well different PRNG satisfy each criteria. I'd really like to find a reference to a thorough discussion of each PRNG's strengths and weaknesses, but I'm open to any heuristics as well :)