What would be the best hashing algorithm if we had the following priorities (in that order):
It doe
"Murmurhash" is pretty good on both performance and collisions.
The mentioned thread at "softwareengineering.stackexchange" has some tests and Murmur wins.
I wrote my own C# port of MurmurHash 2 to .NET and tested it on a list of 466k English words, got 22 collisions.
The results and implementation are here: https://github.com/jitbit/MurmurHash.net (disclaimer, I'm involved with this open source project!)