Q:

Randomly rename all files in a (large) collection

I have a large collection of files, all in one folder. I don't yet know how large exactly, but I expect it to be in the range of 10,000-100,000. I will eventually be giving them to someone else, but currently the filenames aren't acceptably anonymous. The contents of the files don't need to be changed.
Thus, I need a tool that will allow me to randomly rename every file in the directory. The names should not be based off any data or meta data associated to the files in any obvious way. So, for instance, it would be unacceptable if the new names were based on the dates associated to the files or the current names in any way that would allow one to easily reconstruct any information about the files. The only portion of the extension that should not be changed is the extension.
As for exactly how it will work, I don't particularly care. The new names could be pseudorandomly generated, or they could be given by a sufficiently secure hash. The person I'm giving them to is relatively trustworthy, so security isn't really an issue (they aren't going to be deliberately trying to reconstruct the original names), but it would bring up completely different issues if I sent the files without any attempt to make them anonymous. The new names can be hex strings, or decimal numbers, or even sequential numbers beginning at 1 for some random file and continuing randomly. Anything that doesn't obviously contain any information about the file's contents or meta data is acceptable.
I know that there are a few tools that can do this just from a Google search, but I don't know how well they'd handle a set as big as mine. For the hashing/randomly generating names, it'll need to be able to deal with a substantial number of collisions. For randomly ordering the files, high complexity algorithms to generate a random permutation could be slow. I don't need it to run instantly, but I also don't want to be waiting for days on it to run.
Apart from speed, I'm looking for something relatively lightweight. I don't expect to need to do this more than a couple of times (probably only once). Ideally, it would be something that I can install once, immediately do the operation, and then uninstall it. I don't particularly care about the interface or detailed customization options. Windows is preferred, but I can transfer the files to Linux without too much hassle. A webservice which requires uploading all of the files would not be acceptable, since the average file size will be about 2 MB.

A:

RandomNames script by Jason Faulkner:

has undo function
portable

Direct Download Link.

