A study of two classical computational problems that not only amuse mathematicians, but also arise in the natural sciences: counting the elements of a finite set of combinatorial structures; and generating them at random from some probability distribution. Of interest to researchers and graduate stu