for this solution to work you must know the total number of nodes in the generation network. let this number be n
.
the basic idea is to generate uniformly distributed random numbers on each participating node inside a given interval. the n
intervals of the participating nodes must not overlap.
a shared seed does not complicate matters if the total number of nodes does not change and each node can be assigned statically some integer i
<= n
such that each number is issued exactly once. instead of generating a single random number on each turn, n
numbers are generated, and node i
takes the i
-th number from this series.
however, the overall distribution of random numbers generated will not be uniform unless ...:
- you synchronize random number generation.
- all intervals have the same size.
for information on random number generation on individual nodes see here.