1. A method for making joint pseudo random decisions in a distributed program comprising: receiving a common original seed value at a plurality of processes in said distributed program, the original seed value provided by a user in computer readable code shared by the plurality of processes; generating the same sequence of pseudo random numbers for each of said plurality of processes using the common original seed value; using pseudo random numbers in the sequence to make identical successive joint pseudo random decisions at each of the plurality of processes without a need for communications or synchronization between any of the processes as to the successive joint pseudo random decisions, each process using the same pseudo random number; and making non-joint pseudo random decisions at each of the plurality of processes using pseudo random numbers from sequences of pseudo random numbers generated using seeds having different values than the common seed, wherein the distributed program is implemented in a computing device that comprises instructions stored in a machine-readable medium and a processor that executes the instructions.