Or, take an old phone book that you don't mind marking up...suddenly, it's a random-number generator! Just open the phone book to any page, place your finger on a name, and use the last four digits of that phone number as your "starting point." (Ignore the area code and the first three digits of the phone numbers, as they're likely to repeat over and over and mess up your randomness.) Cross off the numbers as you use them, and continue on in sequence as you need to make die rolls.
Here's how the random numbers work for dice of various sizes:
d4, d6, d8 - Use the next unused digit, as-is. If the next number in sequence is outside the die roll range (rolling a d4, and the next digit is a "7"), simply cross it off and move on to the next digit until you find one in range.
d10 - same as above, but a "0" is a "10"
d12, d20 - these require two digits, so they're treated initially as half their value (d6 and d10, respectively, determined as above), and then the digit immediately following determines whether or not to add the other half (6 or 10, respectively): if it's odd, add nothing, and if it's even, add the other half. As an example, for a d12 roll, let's say the following are the next phone number digits: 8158. First, roll for d6 - the "8" is no good, so cross it off and move on; the "1" is your d6 roll, and the "5" is odd so add nothing, and you end up with a "1" on your d12. If the next number had been 2059, the "2" would be the d6 roll, and the "0," being even, would mean that you add 6, so the d12 roll would be an "8."
It probably works best if the DM is in charge of making all of the "die rolls" from the phone book. However, anytime the players want, they can call out a number from 1-6 (or whatever), and the DM moves that many phone numbers down the page. (This prevents the DM from looking ahead and seeing what the next number is, and knowing ahead of time what the result will be if he calls for a certain saving throw.)
This system may be somewhat slow at first, but once you get the hang of it it speeds up. It has the advantage of being completely as random as actual dice, but the disadvantage of only allowing one die roll at a time. (If a fireball does 8d6 damage, you have to keep going through your phone number digits until you have 8 values from 1 to 6, and then add them all up.) And yes, I've actually had to use it once, when I was playing the solo adventure "Midnight on Dagger Alley" on alert and forgot to bring any dice with me. (I used personnel authenticator values instead of a phone book, but the principle's the same.)
Johnathan
(Edited: screwed up the simple math on one of my examples.)