My first thought is to store all the filenames into a [coll ], then you could send a random index number to coll to output the path of the chosen file into [sfplay~ ] (or just send a random number to umenu to spit out the filename for sfplay~). One problem is that [sfplay~ ] probably won't be able to load and play the file immediately, so you may have to plan for some "lag". But you could work around this, it shouldn't be a big issue. You'll also have to set the search path of the patch to include the selected folder, otherwise [sfplay~] won't be able to load the files. Something like this might help with that:
Another option is to load all the files into buffers (for playback via groove~), it would avoid the potential loading time lag problem, but would take up loads more RAM.