diff --git a/quiz.module b/quiz.module
index b18e6d1..700c706 100644
--- a/quiz.module
+++ b/quiz.module
@@ -3373,8 +3373,8 @@ function _quiz_get_random_questions($quiz) {
       // Select random question from assigned pool.
       $result = db_query_range("SELECT child_nid as nid, child_vid as vid
                                 FROM {quiz_node_relationship}
-                                WHERE parent_vid = :parent_vid AND parent_nid = :parent_nid AND question_status = :question_status ORDER BY RAND()", array(':parent_vid' => $quiz->vid, ':parent_nid' => $quiz->nid, ':question_status' => QUESTION_RANDOM));
-      while ($question_node = db_fetch_array($result)) {
+                                WHERE parent_vid = :parent_vid AND parent_nid = :parent_nid AND question_status = :question_status ORDER BY RAND()", 0, $quiz->number_of_random_questions, array(':parent_vid' => $quiz->vid, ':parent_nid' => $quiz->nid, ':question_status' => QUESTION_RANDOM));
+      foreach ($question_node as $result) {
         $question_node['random'] = TRUE;
         $question_node['relative_max_score'] = $quiz->max_score_for_random;
         $questions[] = $question_node;
