The kernel has a similar reordering stage, best explained by Theo de Raadt: https://marc.info/?l=openbsd-tech&m=149887978201230&w=2
The full implementation is in the tree.
See Theo's talk from Hackfest 2014, an updated talk originally given at EuroBSDcon 2014:
https://www.openbsd.org/papers/hackfest2014-arc4random/index...
Page 19 and beyond explain this in detail: https://www.openbsd.org/papers/hackfest2014-arc4random/mgp00...
^[which?] ^[citation needed]
On mobile, most mobile SoCs include security stuff, Qualcomm seems to have had them since at least the Snapdragon 805. See here for the addition of the RNG to the linux kernel in 2013: https://lwn.net/Articles/570158/
Even common embedded SoCs like those used in the ESP8266 include hardware RNGs.
Really, there's no excuse for not using it as at least one factor. If you're concerned about possible backdoors, xor it with your own CSPRNG in software like the Linux kernel does.
https://marc.info/?l=openbsd-cvs&m=149605105003964&w=2
https://marc.info/?l=openbsd-cvs&m=146168291000757&w=2
This means that in addition to the dynamic linker loading libraries at random addresses, in a random order, the offsets inside the library itself are different on each boot, and on each system.
Robert Peichaer (rpe@) added the kernel re-linking at install/upgrade: https://marc.info/?l=openbsd-cvs&m=149884116824098