# Intrinsics that Generate Random Numbers of 16/32/64 Bit Wide Random Integers

To use these intrinsics, include the immintrin.h file as follows:

    #include <immintrin.h>

## RDRAND

There are three intrinsics returning a hardware-generated random value.

These intrinsics are mapped to a single RDRAND instruction. The exception is the intrinsic _rdrand64_step(), which is mapped to two 32-bit RDRAND instructions and several shift and conditional jump/move instructions on 32-bit platforms.

## RDSEED

There are three intrinsics returning a hardware-generated random value.

These intrinsics are mapped to a code-sequence based on the RDSEED instruction. The result code depends on the context in which the intrinsics were used and on the target OS.

Parent topic: Intrinsics for Later Generation Intel® Core™ Processor Instruction Extensions

- _rdrand16_step(), _rdrand32_step(), _rdrand64_step()
  Generate random numbers of 16/32/64 bit wide random integers. These intrinsics are mapped to the hardware instruction `RDRAND`.
- _rdseed16_step/ _rdseed32_step/ _rdseed64_step
  Generates random numbers of 16/32/64 bit wide random integers. The corresponding 4th Generation Intel® Core™ instruction is `RDSEED`.