Considering the following:
a) you want some confidentiality (as in not telling everybody how many orders you've received).
b) you want a check digit (e.g., using the Verhoeff algorithm) at the end so you can easily tell misspells and help dealing with errors when scanning barcodes, if this is the case.
c) you've to consider time so consumers can sort the order of the orders.
d) should it be all numeric or hexdec, etc?.
e) something that your consumer can say over the phone to the support team and is just enough for identifying the order without the staff having to ask for e-mail, etc, because of security concern.
I'd love to hear some opinions.
PS: any algorithm designed for solving this problem also would be considered a valid answer for me.