There have been different questions about random number generation, but I have not seen one that would address the specific problem that I am trying to solve.
My requirements are:
- I need to be able to generate a set of 5000 numbers, each number being 10 digits long
- The numbers in this set must be random (or sufficiently random to not be easily guessed)
- The numbers in this set must be unique
- There is no need for order in the set elements
- My software needs to be able to recognize that a number was generated using this algorithm. The members of a set are not stored (but a seed or some parameter used to construct them can be).
- The process must be repeatable. Sets of 5000 numbers will be generated at different times. The same number CAN appear in different sets, but the algorithm to generate them must not be easily repeatable/recognizable. (For example, if I have a set of 5000 numbers, I should not be able to easily determine what will be the set of numbers in another set of 5000.)
Is there a way to do this? Any help or suggestions where to look would be appreciated. (This would be implemented in PHP, but I am just looking for an algorithm to do this.)