Outline: General techniques for analyzing randomized algorithms and specific algorithms; Parallel versions of quicksort, hashing, bloom filters, string matching; Primality testing, stable matching with random preferences, symmetry breaking; The RSA cryptographic scheme, routing in sparse networks; Random graphs, models of the Internet.