Your code is not self-contained. Are you using
List::Util::shuffle?
Do I try to incorporate my code into one of the existing modules and contribute a patch to the module maintainer?
Yes, especially if you use a similar coding style to that used by the current author and you supply tests to validate your new functionality.
Do I flesh mine out into a full module and add to the number of modules out there that meet an individual's needs but don't quite cover the bases for a majority?
This is another good choice if you feel your code is better in some way than existing modules (faster, easier to use, easier to install, etc.). You should explicitly describe in the module's POD what differentiates your module from others.
If you go this route, try to select a module name which is similar to other CPAN modules which perform a similar function. This of course requires more of a commitment because you will be responsible for supporting and maintaining the module.
Do I write a module that's backward compatible with the other modules but includes the solution for my own needs in the hope that I can reduce the number of modules that have multiplied out there so far?
Not necessarily. How do you think you will be able to reduce the number of CPAN modules?
Does CPAN module multiplication induce apathy and denial in anyone else, or is it just me?
The number of CPAN modules has thus far not affected me in that way.