Random2
val weighted : (float * 'a) -> (float * 'a) list -> 'a
val sample_unique : (int * (unit -> 'a)) list -> 'a list