evenly distribute into set; allow custom rng