diff --git a/decisions.module b/decisions.module
index b292d05..8360901 100644
--- a/decisions.module
+++ b/decisions.module
@@ -1798,28 +1798,6 @@ function _decisions_date($format, $timestamp, $offset = NULL) {
 }
 
 /*
- * Function to put choices in random order if option to
- * list poll options in random order is selected in
- * node create/edit form.
- */
-function _decisions_randomize_options($choices, $num_choices) {
-  $randomized_choices = array();
-  // Put original ordered choices in separate variable.
-  $temp_choices = $choices;
-  // Put array keys from ordered choices in random order.
-  $rand_keys = array_rand($choices, $num_choices);
-
-  // Use keys from randomized array to get data from temp variable.
-  // Use key+1 because $choices is 1 based and keys in randomized array
-  // are 0 based.
-  foreach ($rand_keys as $key => $value) {
-    $randomized_choices[$key + 1]['vote_offset'] = $temp_choices[$value]['vote_offset'];
-    $randomized_choices[$key + 1]['label'] = $temp_choices[$value]['label'];
-  }
-  return $randomized_choices;
-}
-
-/*
  * Implementation of hook_votingapi_insert().
  * Sets a simple cache item that we can use to check if a user voted.
  * This can be more performant on sites that use a fast cache store, like Memcache.
@@ -1856,4 +1834,4 @@ function decisions_votingapi_relationships() {
     'content_id_column' => 'nid',
   );
   return $relationships;
-}
\ No newline at end of file
+}
diff --git a/modes/ranking.module b/modes/ranking.module
index cb8d931..adbb4d2 100644
--- a/modes/ranking.module
+++ b/modes/ranking.module
@@ -79,7 +79,7 @@ function decisions_ranking_voting_form($form_state, $node, $teaser, $page) {
     // Put options in random order if randomize option
     // selected on node create/edit form.
     if ($node->randomize) {
-      $node->choice = _decisions_randomize_options($node->choice, $node->choices);
+      shuffle($node->choice);
     }
 
     $num_choices = count($node->choice);
@@ -111,7 +111,7 @@ function decisions_ranking_voting_form($form_state, $node, $teaser, $page) {
 
     foreach ($node->choice as $key => $choice) {
       if ($choice['label']) {
-        $form['choice'][$key] = array(
+        $form['choice'][$choice['vote_offset']] = array(
           '#type' => 'select',
           '#title' => check_plain($choice['label']),
           '#options' => $choices,
diff --git a/modes/selection.module b/modes/selection.module
index 567294c..f6d2f79 100644
--- a/modes/selection.module
+++ b/modes/selection.module
@@ -165,7 +165,7 @@ function decisions_selection_voting_form($form_state, $node, $teaser, $page) {
     // Put options in random order if randomize option
     // selected on node create/edit form.
     if ($node->randomize) {
-      $node->choice = _decisions_randomize_options($node->choice, $node->choices);
+      shuffle($node->choice);
     }
     //Single choice, "Plurality" voting.
     if ($node->maxchoices == 1) {
@@ -175,16 +175,16 @@ function decisions_selection_voting_form($form_state, $node, $teaser, $page) {
         $links = '';
 
         foreach ($node->choice as $i => $choice) {
-          $links[$i]['attributes']['class'] = 'decisions_selection_vote';
-          $links[$i]['query'] = drupal_get_destination() . '&token='. selection_get_token($node->nid, $i);
+          $links[$choice['vote_offset']]['attributes']['class'] = 'decisions_selection_vote';
+          $links[$choice['vote_offset']]['query'] = drupal_get_destination() . '&token='. selection_get_token($node->nid, $choice['vote_offset']);
           if ($page) {
-            $links[$i]['query'] .= '&page=1';
+            $links[$choice['vote_offset']]['query'] .= '&page=1';
           }
           if ($teaser) {
-            $links[$i]['query'] .= '&teaser=1';
+            $links[$choice['vote_offset']]['query'] .= '&teaser=1';
           }
-          $links[$i]['title'] = check_plain($choice['label']);
-          $links[$i]['href'] = "decisions_selection/vote/$node->nid/$i/";
+          $links[$choice['vote_offset']]['title'] = check_plain($choice['label']);
+          $links[$choice['vote_offset']]['href'] = "decisions_selection/vote/$node->nid/{$choice['vote_offset']}/";
         }
         
         if (!empty($links)) {
@@ -205,7 +205,7 @@ function decisions_selection_voting_form($form_state, $node, $teaser, $page) {
       else {
         foreach ($node->choice as $i => $choice) {
           if ($choice['label']) {
-            $list[$i] = check_plain($choice['label']);
+            $list[$choice['vote_offset']] = check_plain($choice['label']);
           }
         }
       }
@@ -220,7 +220,7 @@ function decisions_selection_voting_form($form_state, $node, $teaser, $page) {
     else {
       foreach ($node->choice as $i => $choice) {
         if ($choice['label']) {
-          $list[$i] = check_plain($choice['label']);
+          $list[$choice['vote_offset']] = check_plain($choice['label']);
         }
       }
       $form['choice'] = array(
@@ -420,4 +420,4 @@ function theme_selection_decisions_1click_controls($links = array(), $node = NUL
 
 function theme_selection_decisions_view_results($node = NULL, $teaser = FALSE, $page = FALSE, $new_vote = array()) {
   return selection_decisions_view_results($node, $teaser, $page, $new_vote);
-}
\ No newline at end of file
+}
