Randomized algorithms lecture #2 - birthday paradox, random shuffle, hashing