When we need to shuffle elements into a random order, we can use the C++11 std::shuffle algorithm, which relies on a random engine as the source of randomness.
Any random engine can be used, but for simple use cases, the implementation-defined std::default_random_engine is typically sufficient.
Compiler Explorer link: https://compiler-explorer.com/z/PzsW48Eq3