'Gaussian distribution.
mu is the mean, and sigma is the standard deviation.  This is
slightly faster than the normalvariate() function.
Not thread-safe without a lock around calls.'

def gauss(self, mu, sigma):

    random = self.random
    z = self.gauss_next
    self.gauss_next = None
    if (z is None):
        x2pi = (random() * TWOPI)
        g2rad = _sqrt(((-2.0) * _log((1.0 - random()))))
        z = (_cos(x2pi) * g2rad)
        self.gauss_next = (_sin(x2pi) * g2rad)
    return (mu + (z * sigma))
