Обычно вызов srand(time(NULL))
перед вызовом std :: random_shuffle () даст вам то, что вам нужно, каждый раз, когда вы вызываете std :: random_shuffle (), вы получите другой результат.Это потому, что std :: random_shuffle () внутренне вызывает rand () во многих заполненных реализациях (например, VS2008 и gcc).
Конечно, вы можете дополнить RNG самостоятельно, если хотите вызвать другой перегруженный std :: random_shuffleс дополнительным параметром.