title: Use and utility of std::shuffle?
body: <p>If you look to the specifications of random shuffle in C++11, there are 3 functions. My question is what is the typical use and advantage of : </p>
  
  <pre><code>template&lt; class RandomIt, class URNG &gt;
  void shuffle( RandomIt first, RandomIt last, URNG&amp;&amp; g );
  </code></pre>
  
  <p>compared to:</p>
  
  <pre><code>template&lt; class RandomIt &gt;
  void random_shuffle( RandomIt first, RandomIt last );
  </code></pre>
  
  <p>I mean, it seems that whatever URNG is (a uniform distribution), the result will be the same (from a statistical point of view). The only point I see, is that <code>std::shuffle</code> is thead-safe, whereas this overload of<code>std::random_shuffle</code> is not. Could you confirm that ?</p>
  
  <p>EDIT: I thought that URNG should be a uniform distribution but that does not seem to compile. So can someone provide a little example of use of <code>std::shuffle</code>?</p>