This is an interesting-looking gadget from PayPal: a hardware security token that you carry around with you on your keyring.
If, as the page says, the device generates a six-digit code "about every 30 seconds", then it can be expected to take "about" a year to exhaust all possible codes and start over. (If it generated a new code exactly every 30 seconds, and did not re-use any code until all codes had been used, it would exhaust the one million available codes in 347.222 days.) On the face of it, this looks like pretty good odds.
However, the algorithm must necessarily be deterministic, or it wouldn't work. And if it's deterministic, and someone can learn (disassemble, reverse-engineer, whatever) the algorithm, and can get (sniff or shoulder-surf, for example) any single code that you used and when it was used, they may possibly (depending on the algorithm) be able to determine what code your token will generate at any specified time in the future, unless each token has some kind of unique-per-token salt. The "frequently asked questions" page does appear to imply that such a per-token key or salt exists.
Discuss.