With fixed seeds we get deterministic tests but they only cover a small slice of the issues that might come up with different seeds. With random seeds you get much more coverage over time, but the tests are not deterministic which makes it hard to debug failures. With the latest set of tests we do a mixture that I think gets us the best of both worlds. We create a random seed but log it in the output. The tests are written so that if there is a failure, we can easily substitute that logged seed and debug. This is a strategy we've used elsewhere that is very effective at catching and debugging hidden randomness issues. 

We are not consistent with this yet, but I'd like to move in this direction.