You could also use Algorithm::Numerical::Shuffle which, despite the name, shuffles lists of strings, too. I have been using it reliably in a production system for a similar task for over a year with no problems.
HTH, --traveler
Comment on Re: random elements from array - new twist