Keyshaker (iOS) (discontinued)
Password generators that use software algorithms only aren’t random enough most of the time. On the other hand if you use advanced hardware to generate random events it gets expensive fast.
The iPhone has a very sensible Accelerometer sensor built in that works on three axes. If the iPhone is moved while a key is generated (shaking, tossing,…) each new character is calculated from a new set of input data from all axes. Since the Accelerometer is very sensible, it is almost impossible to generate a key twice – moving the iPhone as a human is just too random.