The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

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

AUTHOR

Andrius Merkys, mailto:merkys@cpan.org