Con el mismo valor inicial, las instancias separadas de Random devolverán/generarán la misma secuencia de números aleatorios; más en esta aquí: http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter04/javaRandNums.html
Rubí Ejemplo:
class LCG; def initialize(seed=Time.now.to_i, a=2416, b=374441, m=1771075); @x, @a, @b, @m = seed % m, a, b, m; end; def next(); @x = (@a * @x + @b) % @m; end; end
irb(main):004:0> time = Time.now.to_i
=> 1282908389
irb(main):005:0> r = LCG.new(time)
=> #<LCG:0x0000010094f578 @x=650089, @a=2416, @b=374441, @m=1771075>
irb(main):006:0> r.next
=> 45940
irb(main):007:0> r.next
=> 1558831
irb(main):008:0> r.next
=> 1204687
irb(main):009:0> f = LCG.new(time)
=> #<LCG:0x0000010084cb28 @x=650089, @a=2416, @b=374441, @m=1771075>
irb(main):010:0> f.next
=> 45940
irb(main):011:0> f.next
=> 1558831
irb(main):012:0> f.next
=> 1204687
Basándose en los valores a/b/m, el resultado será el mismo para una semilla dada. Esto se puede usar para generar el mismo número "aleatorio" en dos lugares y ambos lados pueden depender de obtener el mismo resultado. Esto puede ser útil para el cifrado; aunque obviamente, este algoritmo no es criptográficamente seguro.
Seguir esa afirmación es bastante sencillo. 'Random r1, r2', crea e inicializa con la misma semilla (ver documentación). Llamar 'siguiente' 5 veces en cada uno. Devolverán la misma secuencia exacta de 5 números "aleatorios". – polygenelubricants