<p>1) No, the numbers from RdRand are not truly random, since they come from a cryptographically-secure pseudorandom number generator.  However, RdRand, RdSeed, and the Intel Secure Key technology are probably the closest to truly random you will find.</p>

<p>2)  Yes, the feature is available in all Intel processors that appear in laptops, desktops, and servers starting with the Ivy Bridge processors you mention.  These days, the features are also implemented in AMD chips.</p>

<p>3 and 4)  The Intel software development guide is the place to look for these answers.  There is an interesting discussion of how Intel Secure Key is applied to an astrophysical problem here (<a href="http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120" rel="nofollow noreferrer">http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120</a>) and non-paywalled version here (<a href="https://arxiv.org/abs/1707.02212" rel="nofollow noreferrer">https://arxiv.org/abs/1707.02212</a>).  This paper describes how the technology works, how to implement it, and describes its performance (Sections 2.2.1 and 5).  Had to read it for a class.</p>
True random numbers with C++11 and RDRAND
<p>I have seen that Intel seems to have included a new assembly function to get real random numbers obtained from hardware. The name of the instruction is <code>RdRand</code>, but only a small amount of details seem accessible on it on Internet: <a href="http://en.wikipedia.org/wiki/RdRand">http://en.wikipedia.org/wiki/RdRand</a></p>

<p>My questions concerning this new instruction and its use in C++11 are the following:</p>

<ol>
<li><p>Are the random numbers generated with <code>RdRand</code> really random? (each bit generated from uncorrelated white noise or quantum processes? )</p></li>
<li><p>Is it a special feature of Ivy Bridge processors and will Intel continue to implement this function in the next generation of cpu?</p></li>
<li><p>How to use it through C++11? Maybe with <code>std::random_device</code> but do compilers already call <code>RdRand</code> if the instruction is available?</p></li>
<li><p>How to check whether <code>RdRand</code> is really called when I compile a program?</p></li>
</ol>