random_sorted, a MATLAB code which generates vectors of random values which are already sorted.

Since the computation of the spacing between the values requires some additional arithmetic, it is not immediately obvious when this procedure will be faster than simply generating a vector of random values and then sorting it.

Because the library can generate a sorted random vector of values between 0 and 1, it is possible to generate sorted data samples from any distribution for which the inverse Cumulative Density Function (CDF) is known. For instance, to generate sorted normal data, simply generate sorted uniform data, and then apply the inverse of the normal CDF, as in the example code listed below.


The computer code and data files described and made available on this web page are distributed under the MIT license


random_sorted is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

asa183, a MATLAB code which implements the Wichman-Hill random number generator (RNG).

matlab_random_test, a MATLAB code which uses Matlab's random number generators.

normal, a MATLAB code which computes a sequence of pseudorandom normally distributed values.


ranlib, a MATLAB code which produces random samples from Probability Density Functions (PDF's), including Beta, Chi-square Exponential, F, Gamma, Multivariate normal, Noncentral chi-square, Noncentral F, Univariate normal, random permutations, Real uniform, Binomial, Negative Binomial, Multinomial, Poisson and Integer uniform, by Barry Brown and James Lovato.

rnglib, a MATLAB code which implements a random number generator (RNG) with splitting facilities, allowing multiple independent streams to be computed, by L'Ecuyer and Cote.

toms515, a MATLAB code which can select subsets of size K from a set of size N. This is a version of ACM TOMS Algorithm 515, by Bill Buckles, Matthew Lybanon.

uniform, a MATLAB code which computes a sequence of uniformly distributed pseudorandom values.


  1. Jon Bentley, James Saxe,
    Generating sorted lists of random numbers,
    ACM Transactions on Mathematical Software,
    Volume 6, Number 3, September 1980, pages 359-364.

Source Code:

Last revised on 03 March 2019.