diff --git a/core/lib/Drupal/Component/Utility/Random.php b/core/lib/Drupal/Component/Utility/Random.php
index cf34835..0f2a743 100644
--- a/core/lib/Drupal/Component/Utility/Random.php
+++ b/core/lib/Drupal/Component/Utility/Random.php
@@ -7,7 +7,7 @@
  *
  * @ingroup utility
  */
-class Random {
+class Random implements RandomInterface {
 
   /**
    * The maximum number of times name() and string() can loop.
@@ -34,24 +34,7 @@ class Random {
   protected $names = [];
 
   /**
-   * Generates a random string of ASCII characters of codes 32 to 126.
-   *
-   * The generated string includes alpha-numeric characters and common
-   * miscellaneous characters. Use this method when testing general input
-   * where the content is not restricted.
-   *
-   * @param int $length
-   *   Length of random string to generate.
-   * @param bool $unique
-   *   (optional) If TRUE ensures that the random string returned is unique.
-   *   Defaults to FALSE.
-   * @param callable $validator
-   *   (optional) A callable to validate the string. Defaults to NULL.
-   *
-   * @return string
-   *   Randomly generated string.
-   *
-   * @see \Drupal\Component\Utility\Random::name()
+   * {@inheritdoc}
    */
   public function string($length = 8, $unique = FALSE, $validator = NULL) {
     $counter = 0;
@@ -88,24 +71,7 @@ public function string($length = 8, $unique = FALSE, $validator = NULL) {
   }
 
   /**
-   * Generates a random string containing letters and numbers.
-   *
-   * The string will always start with a letter. The letters may be upper or
-   * lower case. This method is better for restricted inputs that do not
-   * accept certain characters. For example, when testing input fields that
-   * require machine readable values (i.e. without spaces and non-standard
-   * characters) this method is best.
-   *
-   * @param int $length
-   *   Length of random string to generate.
-   * @param bool $unique
-   *   (optional) If TRUE ensures that the random string returned is unique.
-   *   Defaults to FALSE.
-   *
-   * @return string
-   *   Randomly generated string.
-   *
-   * @see \Drupal\Component\Utility\Random::string()
+   * {@inheritdoc}
    */
   public function name($length = 8, $unique = FALSE) {
     $values = array_merge(range(65, 90), range(97, 122), range(48, 57));
@@ -131,12 +97,7 @@ public function name($length = 8, $unique = FALSE) {
   }
 
   /**
-   * Generate a string that looks like a word (letters only, alternating consonants and vowels).
-   *
-   * @param int $length
-   *   The desired word length.
-   *
-   * @return string
+   * {@inheritdoc}
    */
   public function word($length) {
     mt_srand((double) microtime() * 1000000);
@@ -159,14 +120,7 @@ public function word($length) {
   }
 
   /**
-   * Generates a random PHP object.
-   *
-   * @param int $size
-   *   The number of random keys to add to the object.
-   *
-   * @return \stdClass
-   *   The generated object, with the specified number of random keys. Each key
-   *   has a random string value.
+   * {@inheritdoc}
    */
   public function object($size = 4) {
     $object = new \stdClass();
@@ -179,17 +133,7 @@ public function object($size = 4) {
   }
 
   /**
-   * Generates sentences Latin words, often used as placeholder text.
-   *
-   * @param int $min_word_count
-   *   The minimum number of words in the return string. Total word count
-   *   can slightly exceed provided this value in order to deliver
-   *   sentences of random length.
-   * @param bool $capitalize
-   *   Uppercase all the words in the string.
-   *
-   * @return string
-   *   Nonsense latin words which form sentence(s).
+   * {@inheritdoc}
    */
   public function sentences($min_word_count, $capitalize = FALSE) {
     $dictionary = ["abbas", "abdo", "abico", "abigo", "abluo", "accumsan",
@@ -246,10 +190,7 @@ public function sentences($min_word_count, $capitalize = FALSE) {
   }
 
   /**
-   * Generate paragraphs separated by double new line.
-   *
-   * @param int $paragraph_count
-   * @return string
+   * {@inheritdoc}
    */
   public function paragraphs($paragraph_count = 12) {
     $output = '';
@@ -261,15 +202,7 @@ public function paragraphs($paragraph_count = 12) {
 
 
   /**
-   * Create a placeholder image.
-   *
-   * @param string $destination
-   *   The absolute file path where the image should be stored.
-   * @param int $min_resolution
-   * @param int $max_resolution
-   *
-   * @return string
-   *   Path to image file.
+   * {@inheritdoc}
    */
   public function image($destination, $min_resolution, $max_resolution) {
     $extension = pathinfo($destination, PATHINFO_EXTENSION);
diff --git a/core/lib/Drupal/Component/Utility/RandomInterface.php b/core/lib/Drupal/Component/Utility/RandomInterface.php
new file mode 100644
index 0000000..9515f73
--- /dev/null
+++ b/core/lib/Drupal/Component/Utility/RandomInterface.php
@@ -0,0 +1,115 @@
+<?php
+
+namespace Drupal\Component\Utility;
+
+/**
+ * Defines an interface for creating random data.
+ *
+ * @ingroup utility
+ */
+interface RandomInterface {
+
+  /**
+   * Generates a random string of ASCII characters of codes 32 to 126.
+   *
+   * The generated string includes alpha-numeric characters and common
+   * miscellaneous characters. Use this method when testing general input
+   * where the content is not restricted.
+   *
+   * @param int $length
+   *   Length of random string to generate.
+   * @param bool $unique
+   *   (optional) If TRUE ensures that the random string returned is unique.
+   *   Defaults to FALSE.
+   * @param callable $validator
+   *   (optional) A callable to validate the string. Defaults to NULL.
+   *
+   * @return string
+   *   Randomly generated string.
+   *
+   * @see \Drupal\Component\Utility\Random::name()
+   */
+  public function string($length = 8, $unique = FALSE, $validator = NULL);
+
+  /**
+   * Generates a random string containing letters and numbers.
+   *
+   * The string will always start with a letter. The letters may be upper or
+   * lower case. This method is better for restricted inputs that do not
+   * accept certain characters. For example, when testing input fields that
+   * require machine readable values (i.e. without spaces and non-standard
+   * characters) this method is best.
+   *
+   * @param int $length
+   *   Length of random string to generate.
+   * @param bool $unique
+   *   (optional) If TRUE ensures that the random string returned is unique.
+   *   Defaults to FALSE.
+   *
+   * @return string
+   *   Randomly generated string.
+   *
+   * @see \Drupal\Component\Utility\Random::string()
+   */
+  public function name($length = 8, $unique = FALSE);
+
+  /**
+   * Generate a string that looks like a word (letters only, alternating consonants and vowels).
+   *
+   * @param int $length
+   *   The desired word length.
+   *
+   * @return string
+   */
+  public function word($length);
+
+  /**
+   * Generates a random PHP object.
+   *
+   * @param int $size
+   *   The number of random keys to add to the object.
+   *
+   * @return \stdClass
+   *   The generated object, with the specified number of random keys. Each key
+   *   has a random string value.
+   */
+  public function object($size = 4);
+
+  /**
+   * Generates sentences Latin words, often used as placeholder text.
+   *
+   * @param int $min_word_count
+   *   The minimum number of words in the return string. Total word count
+   *   can slightly exceed provided this value in order to deliver
+   *   sentences of random length.
+   * @param bool $capitalize
+   *   Uppercase all the words in the string.
+   *
+   * @return string
+   *   Nonsense latin words which form sentence(s).
+   */
+  public function sentences($min_word_count, $capitalize = FALSE);
+
+  /**
+   * Generate paragraphs separated by double new line.
+   *
+   * @param int $paragraph_count
+   *
+   * @return string
+   */
+  public function paragraphs($paragraph_count = 12);
+
+  /**
+   * Create a placeholder image.
+   *
+   * @param string $destination
+   *   The absolute file path where the image should be stored.
+   * @param int $min_resolution
+   * @param int $max_resolution
+   *
+   * @return string
+   *   Path to image file.
+   */
+  public function image($destination, $min_resolution, $max_resolution);
+
+}
