Index: nodequeue.module
===================================================================
--- nodequeue.module	(revision 424)
+++ nodequeue.module	(working copy)
@@ -781,6 +781,23 @@
 // --------------------------------------------------------------------------
 // Queue position control
 
+/**
+ * Shuffle a queue.
+ *
+ * @param $qid
+ *   The ID of the queue to shuffle.
+ */
+function nodequeue_queue_shuffle($qid) {
+
+  // Load the queue
+  $queue = nodequeue_load($qid);
+
+  // Swap each item with another randomly picked one.
+  for ($current = 1; $current <= $queue->count; $current++) {
+    nodequeue_queue_swap($queue, $current, rand(1, $queue->count));
+  }
+}
+
 function nodequeue_queue_swap($queue, $pos1, $pos2) {
   // Grab the nid off one of the positions so we can more easily swap.
   $nid = db_result(db_query("SELECT nid FROM {nodequeue_nodes} WHERE qid = %d AND position = %d", $queue->qid, $pos1));
