# Random Distribution Generator NDArray API

```eval_rst
    .. currentmodule:: mxnet.ndarray.random
```

## Overview

This document lists the random distribution generator routines of the *n*-dimensional array package:

```eval_rst
.. autosummary::
    :nosignatures:

    mxnet.ndarray.random
```

The `Random Distribution Generator NDArray` API, defined in the `ndarray.random` package, provides
imperative random distribution generator operations on CPU/GPU.

In the rest of this document, we list routines provided by the `ndarray.random` package.

## Random Distribution Generator

```eval_rst
.. currentmodule:: mxnet.ndarray.random

.. autosummary::
    :nosignatures:

    exponential
    gamma
    generalized_negative_binomial
    negative_binomial
    normal
    poisson
    uniform
    mxnet.random.seed
```

## API Reference

<script type="text/javascript" src='../../../_static/js/auto_module_index.js'></script>

```eval_rst

.. automodule:: mxnet.ndarray.random
    :members:

.. automodule:: mxnet.random
    :members:

```

<script>auto_index("api-reference");</script>
