Каков хороший способ получить [псевдо-] случайный элемент из диапазона STL?
Лучшее, что я могу придумать, - это сделать std::random_shuffle(c.begin(), c.end()), а затем взять мой случайный элемент из c.begin().
Однако мне может понадобиться случайный элемент из контейнера const, или мне может не потребоваться стоимость полного перетасовки.
Есть ли лучший способ?