Looking at: [1](https://wiki.archlinux.org/index.php/Rng-tools), and then following to: [2](https://en.wikipedia.org/wiki/ Hardware_random_number_generator), one can think that rng-tools uses: [3] (https://en.wikipedia.org/wiki/RdRand).
But it might not be so, since [2] says: "The RdRand opcode will return values from an onboard hardware random number generator. It is present in Intel Ivy Bridge processors and AMD64 processors since 2015", and IvyBridge started in 2012, and rng-tools code is very, very old (but there is some overlapping time, possibly). Therefore believing that rng-tools uses RdRand's CPU hardware random generator instruction, might be pure misconception. Consequently, haveged seeming much newer and maintained, it is in my opinion the best choice. Thanks