52 std::vector<size_t> result;
56 throw std::invalid_argument(
57 "Cannot select more unique elements than there are elements: k == " +
63 std::uniform_real_distribution<double> distribution( 0.0, 1.0 );
70 double const u = distribution( engine );
72 if( (n - t) * u >= k - m ) {
76 result.push_back( t );
82 assert( result.size() == k );