  Quantum physics can be exploited to generate true random numbers, which play
important roles in many applications, especially in cryptography. Genuine
randomness from the measurement of a quantum system reveals the inherent nature
of quantumness --- coherence, an important feature that differentiates quantum
mechanics from classical physics. The generation of genuine randomness is
generally considered impossible with only classical means. Based on the degree
of trustworthiness on devices, quantum random number generators (QRNGs) can be
grouped into three categories. The first category, practical QRNG, is built on
fully trusted and calibrated devices and typically can generate randomness at a
high speed by properly modeling the devices. The second category is
self-testing QRNG, where verifiable randomness can be generated without
trusting the actual implementation. The third category, semi-self-testing QRNG,
is an intermediate category which provides a tradeoff between the
trustworthiness on the device and the random number generation speed.
