Added rand methods to Iterator, second try.

This change adds rand methods to Iterator similar to those on List.
This change allows multiple elements to be selected, either allowing
or disallowing duplicates. Items are chosen from those iterated over
with uniform probability.