I've read the question and answer How to code a URL shortener? and all the math makes perfect sense. My question is, since you have to go back to the database/datastore anyway for the lookup, why not just generate a random short string in your alphabet and store it with the full URL in your datastore, rather than converting it back to a numerical ID?
It seems to me that this saves doing any math on the server, reduces complexity, and eliminates the 'walkability' of the short URL space (for my use-case, this is critical; URLs must not be guessed). If using a NoSQL store designed for key->value lookup, it doesn't seem that there is any potential performance issue of looking up the full URL value from a string as opposed to a numerical ID.
I'd like to know if I'm missing something.