Random Structures and Algorithms