'x, random=random.random -> shuffle list x in place; return None.
Optional arg random is a 0-argument function returning a random
float in [0.0, 1.0); by default, the standard random.random.'

def shuffle(self, x, random=None, int=int):

    if (random is None):
        random = self.random
    for i in reversed(xrange(1, len(x))):
        j = int((random() * (i + 1)))
        (x[i], x[j]) = (x[j], x[i])
