Add WeightedChoice() && WeightedShuffle()
#78

an63 wants to merge ranshift into master

We do not currently have an analysis of these two commits