Picks a pseudo-random item from a pool in several ways, including a recursive method that allows for more control over probability.