I am doing a project involving taking millions of random samples from a set as part of a heuristic to find the best path in traveling salesman’s problem.
I need a random generator whose “randomness” will not be exhausted after that many samples.
It should also be fast, and as random as possible.
What is the best random generator to use in such a case?
(I know, C# isn’t the best language for Traveling Salesman’s, but that’s the requirement :)).
EDIT: In order to clarify what I mean, /dev/random in UNIX systems is an entropy-based generator. This is why you must move your mouse to generate an SSH-key: the random number generator it uses is based on user input to generate entropy. In short, I need a good random number generator which is seed-based, not entropy based. I don’t know whether or not the Random class was seed- or entropy- based. Further, I wonder if other classes out there use a better method than the Random class (which I assume uses linear congruence).
The standard
System.Randomclass uses (signed) 32 bit integers for the seed and values, expect it to loop after 2 billion samples or so.