Use all the analog inputs.
You can also use the signature bytes, to have a difference between Arduino boards.
You can store a random to EEPROM, so next time you start with a different value.
I tried something here: Generating random number from function pre setup - #5 by Koepel (ignore that part that it is used before setup, the function should be called in setup).
It seems to be not right as you can read in the last posts of that topic, but I still don't know why
By the way, you should also fix the bug. When you do random(0,1) then a 0 is returned. Always. Every time. Read the reference: random() - Arduino Reference (pay attention to the word "exclusive").