I've seen a lot of different possible ways to do so, but I was wondering what people thought the most efficient way was.
What do you mean? A queue means its FIFO - first item put in the queue is the first item that comes out of the queue. So its not random.
Ok, so say you have a queue with values in it, then you want to randomize the order that they are currently in.
My point is that its not a queue, then. Just take an ArrayList, use int index = Math.Random(n) where n is the # of items in your ArrayList, then index is the random index you want.
I think you still don't get it....Say there is a queue with elements a, b and c in that order. I want to know what the best way to put the elements in a random order, so you might save the elements off to an array shuffle them, and then put them back into the queue so the new order in the queue would be b, a, c.
But keep in mind a, b, and c are just arbitrary elements if that helps you understand it....
The simplest way would be to use the Collections#shuffle(List<?> list) method which delivers decent performance and output.
If you have an assignment to create such a shuffling algorithm, then look at the source code of the Collections class for hints.
Yeah collections sounds like a good way to go since the shuffle method is built right in, thanks.