There are 2 issues here, which share common issue-space.
1) making sure that we have a good RNG. I believe that ran2 from
numerical recipes is good enough, and is not much of a
performance hit relative to ran1, but I want to prove these.
2) making sure that our method of parallel RNG is legit.
specifically, to prove that we don't have correlations in data
produced between processors.
I think that the only way of proving that our RNG is ok is simply by
running extensive tests and inspecting the results. For parallel
RNG, we may want to upgrade to SPRNG, but I haven't investigated
yet what all that involves.
At the very least, this improvement will involve an upgrade to
random.cpp.