1. A method for hashing a message, the method comprising: using the message to initialize a table representing a deck of cards, each entry of a plurality of entries in the table initialized based on a portion of the message and representing a notional card in a set of cards within the deck of cards; selecting a type of card shuffle from a plurality of different types of card shuffle to apply to the table; modeling an interaction of the set of notional cards according to the selected type of card shuffle and computing a new order for the entries of the table based on the modeling; updating the table to reflect the new order for the entries; and using the updated table to provide a non-keyed hash value of the message.