1) Print like 10 private keys, send money to 9 of them. If they all work then chances are the remaining one should work also. Bitaddress.org I think prints 7 pub+priv key pairs at a time.
Sorry, but i think it's to complicated and the last key could be invalid.
If 9 keys works fine, you don't need the last one

If I recall correctly you can actually generate two bitcoin addresses from a given random number.
Only one if you're using one algo.
But it's certainly correct that the process is completely specified. There's a python library that you can use to play around with keys from numbers, maybe 'ku' (key utils), don't remember.
And what name of this library? I will be very appreciate you