This is my second Perl script. It randomly selects a file to upload based on either a directory, or on a configuration file containing directory names and associated weights. This allows weighted selection of the random picks into any number of "buckets". It is coded to work with Win32 shortcuts as well as regular files. If it encounters a shortcut that doesn't link to a real file, it deletes the shortcut and tries again. Otherwise it uploads the file, dereferencing if it is a shortcut. I have no plans to support Unix symlinks since I can't easily test them. Anyway, this is easy to use. If you have Perl installed and associated with .pl files, you can run this off the command line or write a batch file to do it. Here's the usage:
cool_randupload.pl RemoteHost LoginID LoginPW Path/CFGFile RemoteFile
The script uses either a path or a configuration file. All the configuration file contains is a line-delimited list of directories and integral weights. There are no constraints on the total value of the weights, and they can be at the front of the line or the end of the line (whatever you like). However, your directory names should not end in a space and number or it will confuse the parser. For an example, here's what my cat-picture-uploader config file looks like.
If this sounds useful to you, the script is here.
This script uses the "libwin32" package, which you can get with ppm. ActiveState's distribution may lack the Win32::Shortcut class. It also uses the Net::FTP package.
I have more Perl info here.