Randomized Algorithms and Probabilistic Techniques in Computer Science