diff --git modules/field/tests/field.test modules/field/tests/field.test
index f19a0fd..db601bd 100644
--- modules/field/tests/field.test
+++ modules/field/tests/field.test
@@ -1366,7 +1366,8 @@ class FieldFormTestCase extends FieldTestCase {
       // Assign unique random weights.
       do {
         $weight = mt_rand(-$delta_range, $delta_range);
-      } while (in_array($weight, $weights));
+        $value = mt_rand(1, 127);
+      } while (in_array($weight, $weights) || in_array($value, $values));
       $value = mt_rand(1, 127);
       $edit["$this->field_name[$langcode][$delta][value]"] = $value;
       $edit["$this->field_name[$langcode][$delta][_weight]"] = $weight;
@@ -1434,8 +1435,8 @@ class FieldFormTestCase extends FieldTestCase {
       // Assign unique random weights.
       do {
         $weight = mt_rand(-$delta_range, $delta_range);
-      } while (in_array($weight, $weights));
-      $value = mt_rand(1, 127);
+        $value = mt_rand(1, 127);
+      } while (in_array($weight, $weights) || in_array($value, $values));
       $edit["$this->field_name[$langcode][$delta][value]"] = $value;
       $edit["$this->field_name[$langcode][$delta][_weight]"] = $weight;
       // We'll need three slightly different formats to check the values.
