Weighted random sampler

Implemented with and without replacement sampling.  Without replacement
is naive O(n^2), can be heap'd to O(n logn) someday if it's a problem.