MATH-1611: Obsolete class.

Functionality moved to "Commons RNG" (cf. RNG-140).
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/RandomUtils.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/RandomUtils.java
deleted file mode 100644
index 775693c..0000000
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/random/RandomUtils.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.math4.legacy.random;
-
-import org.apache.commons.math4.legacy.exception.NumberIsTooLargeException;
-import org.apache.commons.math4.legacy.exception.util.LocalizedFormats;
-import org.apache.commons.rng.UniformRandomProvider;
-
-/**
- * Factory for creating generators of miscellaneous data.
- *
- * @since 4.0
- */
-public final class RandomUtils {
-    /**
-     * Class contains only static methods.
-     */
-    private RandomUtils() {}
-
-    /**
-     * @param rng Underlying generator. Reference is copied so the RNG
-     * is shared with the caller.
-     * @return a {@link DataGenerator data generator}.
-     */
-    public static DataGenerator createDataGenerator(final UniformRandomProvider rng) {
-        return new DataGenerator(rng);
-    }
-
-    /**
-     * Various random data generation routines.
-     */
-    public static class DataGenerator {
-        /** Underlying RNG. */
-        private final UniformRandomProvider rng;
-
-        /**
-         * @param rng Underlying generator.
-         */
-        DataGenerator(UniformRandomProvider rng) {
-            this.rng = rng;
-        }
-
-        /**
-         * Generates a uniformly distributed random long integer between {@code lower}
-         * and {@code upper} (endpoints included).
-         *
-         * @param lower Lower bound for generated long integer.
-         * @param upper Upper bound for generated long integer.
-         * @return a random long integer greater than or equal to {@code lower}
-         * and less than or equal to {@code upper}
-         * @throws NumberIsTooLargeException if {@code lower >= upper}
-         */
-        public long nextLong(final long lower,
-                             final long upper) {
-            if (lower >= upper) {
-                throw new NumberIsTooLargeException(LocalizedFormats.LOWER_BOUND_NOT_BELOW_UPPER_BOUND,
-                                                    lower, upper, false);
-            }
-            final long max = (upper - lower) + 1;
-            if (max <= 0) {
-                // Range is too wide to fit in a positive long (larger than 2^63);
-                // as it covers more than half the long range, we use directly a
-                // simple rejection method.
-                while (true) {
-                    final long r = rng.nextLong();
-                    if (r >= lower && r <= upper) {
-                        return r;
-                    }
-                }
-            } else if (max < Integer.MAX_VALUE){
-                // We can shift the range and generate directly a positive int.
-                return lower + rng.nextInt((int) max);
-            } else {
-                // We can shift the range and generate directly a positive long.
-                return lower + rng.nextLong(max);
-            }
-        }
-    }
-}
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/RandomUtilsDataGeneratorAbstractTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/RandomUtilsDataGeneratorAbstractTest.java
deleted file mode 100644
index c1f611a..0000000
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/random/RandomUtilsDataGeneratorAbstractTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.math4.legacy.random;
-
-import org.apache.commons.math4.legacy.RetryRunner;
-import org.apache.commons.math4.legacy.TestUtils;
-import org.apache.commons.math4.legacy.exception.MathIllegalArgumentException;
-import org.apache.commons.math4.legacy.stat.Frequency;
-import org.apache.commons.math4.legacy.core.jdkmath.AccurateMath;
-import org.apache.commons.rng.UniformRandomProvider;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Test cases for the {@link RandomUtils.DataGenerator} class.
- */
-@RunWith(RetryRunner.class)
-public abstract class RandomUtilsDataGeneratorAbstractTest {
-    private final long smallSampleSize = 1000;
-    private final String[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
-                                   "a", "b", "c", "d", "e", "f" };
-    /** Data generator. */
-    private final RandomUtils.DataGenerator randomData;
-
-    /**
-     * @param rng RNG.
-     */
-    protected RandomUtilsDataGeneratorAbstractTest(UniformRandomProvider rng) {
-        randomData = RandomUtils.createDataGenerator(rng);
-    }
-
-    @Test
-    public void testNextLongExtremeValues() {
-        long x = randomData.nextLong(Long.MIN_VALUE, Long.MAX_VALUE);
-        long y = randomData.nextLong(Long.MIN_VALUE, Long.MAX_VALUE);
-        Assert.assertFalse(x == y);
-    }
-
-    @Test
-    public void testNextLongIAE() {
-        try {
-            randomData.nextLong(4, 3);
-            Assert.fail("MathIllegalArgumentException expected");
-        } catch (MathIllegalArgumentException ex) {
-            // ignored
-        }
-    }
-
-    @Test
-    public void testNextLongNegativeToPositiveRange() {
-        for (int i = 0; i < 5; i++) {
-            checkNextLongUniform(-3, 5);
-            checkNextLongUniform(-3, 6);
-        }
-    }
-
-    @Test
-    public void testNextLongNegativeRange() {
-        for (int i = 0; i < 5; i++) {
-            checkNextLongUniform(-7, -4);
-            checkNextLongUniform(-15, -2);
-            checkNextLongUniform(Long.MIN_VALUE + 1, Long.MIN_VALUE + 12);
-        }
-    }
-
-    @Test
-    public void testNextLongPositiveRange() {
-        for (int i = 0; i < 5; i++) {
-            checkNextLongUniform(0, 3);
-            checkNextLongUniform(2, 12);
-            checkNextLongUniform(Long.MAX_VALUE - 12, Long.MAX_VALUE - 1);
-        }
-    }
-
-    private void checkNextLongUniform(long min, long max) {
-        final Frequency<Long> freq = new Frequency<>();
-        for (int i = 0; i < smallSampleSize; i++) {
-            final long value = randomData.nextLong(min, max);
-            Assert.assertTrue("nextLong range: " + value + " " + min + " " + max,
-                              (value >= min) && (value <= max));
-            freq.addValue(value);
-        }
-        final int len = ((int) (max - min)) + 1;
-        final long[] observed = new long[len];
-        for (int i = 0; i < len; i++) {
-            observed[i] = freq.getCount(min + i);
-        }
-        final double[] expected = new double[len];
-        for (int i = 0; i < len; i++) {
-            expected[i] = 1d / len;
-        }
-
-        TestUtils.assertChiSquareAccept(expected, observed, 0.01);
-    }
-
-    @Test
-    public void testNextLongWideRange() {
-        long lower = -0x6543210FEDCBA987L;
-        long upper =  0x456789ABCDEF0123L;
-        long max = Long.MIN_VALUE;
-        long min = Long.MAX_VALUE;
-        for (int i = 0; i < 10000000; ++i) {
-            long r = randomData.nextLong(lower, upper);
-            max = AccurateMath.max(max, r);
-            min = AccurateMath.min(min, r);
-            Assert.assertTrue(r >= lower);
-            Assert.assertTrue(r <= upper);
-        }
-        double ratio = (((double) max)   - ((double) min)) /
-                       (((double) upper) - ((double) lower));
-        Assert.assertTrue(ratio > 0.99999);
-    }
-}