title: C++11 random number distributions are not consistent across platforms -- what alternatives are there?
body: <p>I'm looking for a set of portable distributions for the standard C++11 engines like `std::mt19937' (see <a href="http://en.cppreference.com/w/cpp/numeric/random" rel="noreferrer">http://en.cppreference.com/w/cpp/numeric/random</a>).</p>
  
  <p>The engine implementations perform consistently (i.e. same sequence generated on different platforms – tested with Clang and MSVC), but the distributions seem to be implemented differently on the different platforms.</p>
  
  <p>So, even though the engines produce the same sequence, it seems that a distribution (for example, <code>std::normal_distribution&lt;double&gt;</code>) does not use the same number of samples (i.e. produces different results) on the different platforms, which is not acceptable in my case.</p>
  
  <p>Is there maybe a 3rd party lib I can use that follows the C++11 random templates, but that will deliver consistent values across popular platforms (Looking at support across GCC, MSVC and Clang/llvm).</p>
  
  <p>Options I have looked at so far are:</p>
  
  <ul>
  <li>Boost.random (a bit heavy, but worthwhile since it matches the c++11 counterparts quite well)</li>
  <li>Cloning from libstd++ (also worthwhile and probably portable, but pulling out specific functions might not be straightforward)</li>
  <li>Creating my own C++11-like random distributions</li>
  </ul>
  
  <p>I need uniform, normal, poison and Rayleigh.</p>