---
name: "Math::Random::Free"
section: "3pm"
platform: "linux"
package: "libmath-random-free-perl"
version: "0.2.0-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Math::Random::Free"
---

# Math::Random::Free(3pm)

free drop-in replacement for Math::Random

## NAME

Math::Random::Free - free drop-in replacement for Math::Random

## DESCRIPTION

This is free (see below) implementation of Math::Random 0.72, serving as drop-in replacement for this module.

## MOTIVATION

Math::Random is a great and widely-used module for the generation of random numbers and permutations. Despite being open-source, Math::Random does not fulfill free open-source software definitions as established by the Open Source Initiative (\<https://opensource.org/osd\>) and the Debian Project (\<https://www.debian.org/social\_contract#guidelines\>, a.k.a. DFSG). This is mostly because `"randlib"` code cannot be copied nor distributed for direct commercial advantage. Math::Random::Free is created to free the code depending on Math::Random from these limitations.

## SUPPORT

```
    our @EXPORT = qw(
        random_normal
        random_permutation
        random_permuted_index
        random_set_seed_from_phrase
    );
    our @EXPORT_OK = qw(
        random_exponential
        random_normal
        random_permutation
        random_permuted_index
        random_set_seed_from_phrase
        random_uniform
        random_uniform_integer
    );
```

## CAVEATS

This module has only a subset of Math::Random subroutines (contributions welcome), implemented using either Perl core subroutines or other well-known modules. Thus Math::Random::Free is neither as complete, nor as fast, nor as random as Math::Random. Also Math::Random::Free does not aim for cryptographic security.

While Math::Random::Free supports seed setting, it does that differently from Math::Random. It means that one should not expect the same seed producing identical random sequences in both modules.

As Math::Random::Free employs List::Util for producing random permutations, these are influenced by `$List::Util::RAND` variable.

## TESTED WITH

- •

  Graph::Maker 0.02

## AUTHOR

Andrius Merkys, \<mailto:merkys@cpan.org\>
