std::iota: assigns successive values to a container
include <numeric>
std::iota( v.begin, v.end(), val ); // v[0] = val; // v[v.end()-1] = val + v.size()-1;
std::random_shuffle: randomizes the order of elements of random access containers.
include <algorithm>
std::random_shuffle( v.begin(), v.end() );