random_device vs default_random_engine
<pre><code>#include &lt;vector&gt;
#include &lt;random&gt;

using namespace std;

int main()
{
    vector&lt;int&gt; coll{1, 2, 3, 4};
    shuffle(coll.begin(), coll.end(), random_device{});

    default_random_engine dre{random_device{}()};
    shuffle(coll.begin(), coll.end(), dre);
}
</code></pre>

<p>Question 1: What's the difference between </p>

<p><code>shuffle(coll.begin(), coll.end(), random_device{});</code></p>

<p>and</p>

<p><code>shuffle(coll.begin(), coll.end(), dre);</code>?</p>

<p>Question 2: Which is better?</p>