I won't post in the bitHopper thread because it's too busy, so with your permission I'll reply here to a comment there:
I assume you are giving each pool a table of random block find times (randomly generate a high-precision round percentile 0% to 100%, turn that percentile into number of individual hashes required using correct math, turn that into times using hashrate), and then are simulating the switching and share percentages earned.
No. I am using Meni's formula
You can't use anything that will provide a uniform random distribution. It has to be at least a binomially distributed random, and at best a time-distributed fractional poisson distribution.
I'm using the built in poisson distribution randomiser built into R with some jiggery pokery to make it a poisson time-distributed random(really share based) instead of the standard poisson distribution http://stat.ethz.ch/R-manual/R-patched/library/stats/html/Poisson.html
. Ryouiki has a bespoke poisson randomiser built on mersenne twister as a random seeder.
So there's a bunch of examples to get you going!
I don't know where you heard the term "poisson time-distributed random", but you should use standard terminology:
A process of independent random events happening at a given rate is called a Poisson process
The distribution of the number of events in a given time interval in a Poisson process is called the Poisson distribution
The distribution of the time between any point and the next event in a Poisson process is called the Exponential distribution
The discrete version of the exponential distribution, which gives the number of shares in a round, is called the Geometric distribution
Now, the procedure I outline is the correct way to obtain an exponentially distributed random variable (the active ingredient is taking a logarithm). I don't know how bb did his simulation so can't comment whether this is what he needs.