diff --git a/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php b/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
index bbca1701de75c9c1eb29da33cf04dcd265f92674..6395028025f0ccb1d4cdd15b57e6e3754fe6b9c3 100644
--- a/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
+++ b/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
@@ -71,7 +71,9 @@ public function getSettableOptions(AccountInterface $account = NULL) {
    * {@inheritdoc}
    */
    public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
-     // @todo Implement this once https://www.drupal.org/node/2238085 lands.
+     $allowed_options = options_allowed_values($field_definition->getFieldStorageDefinition());
+     $values['value'] = array_rand($allowed_options);
+     return $values;
    }
 
   /**
diff --git a/core/modules/options/src/Tests/OptionsFieldTest.php b/core/modules/options/src/Tests/OptionsFieldTest.php
index 0380ec0d59dbe3be73c5f7ff27b53142e967a146..a7d3ffe57cefd965d30b4fe5e2aa3c3da76b8945 100644
--- a/core/modules/options/src/Tests/OptionsFieldTest.php
+++ b/core/modules/options/src/Tests/OptionsFieldTest.php
@@ -80,6 +80,7 @@ function testUpdateAllowedValues() {
       'field_name' => $this->fieldName,
       'entity_type' => 'entity_test',
       'bundle' => 'entity_test',
+      'required' => TRUE,
     ))->save();
     entity_get_form_display('entity_test', 'entity_test', 'default')
       ->setComponent($this->fieldName, array(