diff --git a/appendices/extensions.xml b/appendices/extensions.xml
index 86330c6e7be2..21113f53e37c 100644
--- a/appendices/extensions.xml
+++ b/appendices/extensions.xml
@@ -21,7 +21,6 @@
-
@@ -121,6 +120,7 @@
+
@@ -202,7 +202,6 @@
-
@@ -221,6 +220,7 @@
+
diff --git a/appendices/migration70/new-features.xml b/appendices/migration70/new-features.xml
index 7f05505b58a8..f2c1c24da7f4 100644
--- a/appendices/migration70/new-features.xml
+++ b/appendices/migration70/new-features.xml
@@ -640,7 +640,7 @@ session_start([
- CSPRNG Functions
+ CSPRNG Functions
Two new functions have been added to generate cryptographically secure
diff --git a/appendices/migration70/new-functions.xml b/appendices/migration70/new-functions.xml
index e3fe3af62e78..dda54d14322f 100644
--- a/appendices/migration70/new-functions.xml
+++ b/appendices/migration70/new-functions.xml
@@ -17,7 +17,7 @@
- CSPRNG
+ CSPRNG
diff --git a/reference/csprng/book.xml b/reference/csprng/book.xml
deleted file mode 100644
index 2f00ffbdc341..000000000000
--- a/reference/csprng/book.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
- CSPRNG
-
-
- &reftitle.intro;
-
- The cryptographically secure
- pseudo-random number generator (CSPRNG) API provides an easy and reliable way to generate crypto-strong random
- integers and bytes for use within cryptographic contexts.
-
-
- &version.exists.asof;7.0.0 but there is also a
- userland implementation
- for PHP >= 5.2.0.
-
-
-
- &reference.csprng.setup;
- &reference.csprng.constants;
- &reference.csprng.reference;
-
-
-
-
-
diff --git a/reference/csprng/constants.xml b/reference/csprng/constants.xml
deleted file mode 100644
index 17955d40211d..000000000000
--- a/reference/csprng/constants.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- &reftitle.constants;
- &no.constants;
-
-
-
-
diff --git a/reference/math/versions.xml b/reference/math/versions.xml
index 34bd2fb1c69b..0429d661a3aa 100644
--- a/reference/math/versions.xml
+++ b/reference/math/versions.xml
@@ -26,31 +26,24 @@
-
-
-
-
-
-
-
diff --git a/reference/random/book.xml b/reference/random/book.xml
new file mode 100644
index 000000000000..8fc70ff418b9
--- /dev/null
+++ b/reference/random/book.xml
@@ -0,0 +1,52 @@
+
+
+
+ Random Number Generators and Functions Related to Randomness
+ random
+
+
+ &reftitle.intro;
+
+
+
+
+
+ &reference.random.setup;
+ &reference.random.constants;
+ &reference.random.examples;
+ &reference.random.reference;
+
+ &reference.random.random.randomizer;
+
+ &reference.random.random.engine;
+ &reference.random.random.engine.mt19937;
+ &reference.random.random.engine.pcgoneseq128xslrr64;
+ &reference.random.random.engine.xoshiro256starstar;
+ &reference.random.random.cryptosafeengine;
+ &reference.random.random.engine.secure;
+
+ &reference.random.random.randomerror;
+ &reference.random.random.brokenrandomengineerror;
+ &reference.random.random.randomexception;
+
+
+
diff --git a/reference/random/constants.xml b/reference/random/constants.xml
new file mode 100644
index 000000000000..3c65c4db5b4a
--- /dev/null
+++ b/reference/random/constants.xml
@@ -0,0 +1,49 @@
+
+
+ &reftitle.constants;
+ &extension.constants.core;
+
+
+
+
+ MT_RAND_MT19937
+ (integer)
+
+
+
+
+
+
+
+
+ MT_RAND_PHP
+ (integer)
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/csprng/versions.xml b/reference/random/examples.xml
similarity index 58%
rename from reference/csprng/versions.xml
rename to reference/random/examples.xml
index 764cdf851ab0..3341a7146afa 100644
--- a/reference/csprng/versions.xml
+++ b/reference/random/examples.xml
@@ -1,14 +1,25 @@
-
-
+
+ &reftitle.examples;
+
+ Random Example
+
+
-
-
-
+/* ... */
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+ &reftitle.intro;
+
+ Indicates that the used Random\Engine is broken, e.g. because it is severely biased.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\BrokenRandomEngineError
+
+
+
+
+ Random\BrokenRandomEngineError
+
+
+
+ extends
+ Random\RandomError
+
+
+
+ Throwable
+
+
+
+ &InheritedProperties;
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random.cryptosafeengine.xml b/reference/random/random.cryptosafeengine.xml
new file mode 100644
index 000000000000..61a85e28c5bf
--- /dev/null
+++ b/reference/random/random.cryptosafeengine.xml
@@ -0,0 +1,65 @@
+
+
+ The Random\CryptoSafeEngine interface
+ Random\CryptoSafeEngine
+
+
+
+
+
+ &reftitle.intro;
+
+
+
+
+
+
+
+ &reftitle.interfacesynopsis;
+
+
+
+ Random\CryptoSafeEngine
+
+
+
+
+ Random\CryptoSafeEngine
+
+
+
+ Random\Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random.engine.mt19937.xml b/reference/random/random.engine.mt19937.xml
new file mode 100644
index 000000000000..b2aeae452d34
--- /dev/null
+++ b/reference/random/random.engine.mt19937.xml
@@ -0,0 +1,69 @@
+
+
+ The Random\Engine\Mt19937 class
+ Random\Engine\Mt19937
+
+
+
+
+
+ &reftitle.intro;
+
+ Implements the Mt19937 (“Mersenne Twister”) algorithm.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\Engine\Mt19937
+
+
+
+
+ final
+ Random\Engine\Mt19937
+
+
+
+ Random\Engine
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+
+ &reference.random.random.engine.entities.mt19937;
+
+
+
diff --git a/reference/random/random.engine.pcgoneseq128xslrr64.xml b/reference/random/random.engine.pcgoneseq128xslrr64.xml
new file mode 100644
index 000000000000..ca7e3704d1a6
--- /dev/null
+++ b/reference/random/random.engine.pcgoneseq128xslrr64.xml
@@ -0,0 +1,69 @@
+
+
+ The Random\Engine\PcgOneseq128XslRr64 class
+ Random\Engine\PcgOneseq128XslRr64
+
+
+
+
+
+ &reftitle.intro;
+
+ Implements a Permuted congruential generator (PCG) with 128 Bits of state, XSL and RR transformations and 64 Bits output.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\Engine\PcgOneseq128XslRr64
+
+
+
+
+ final
+ Random\Engine\PcgOneseq128XslRr64
+
+
+
+ Random\Engine
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+
+ &reference.random.random.engine.entities.pcgoneseq128xslrr64;
+
+
+
diff --git a/reference/random/random.engine.secure.xml b/reference/random/random.engine.secure.xml
new file mode 100644
index 000000000000..86b4cfe36aa7
--- /dev/null
+++ b/reference/random/random.engine.secure.xml
@@ -0,0 +1,68 @@
+
+
+ The Random\Engine\Secure class
+ Random\Engine\Secure
+
+
+
+
+
+ &reftitle.intro;
+
+ Generates cryptographically secure randomness using the operating system’s CSPRNG.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\Engine\Secure
+
+
+
+
+ final
+ Random\Engine\Secure
+
+
+
+ Random\CryptoSafeEngine
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+ &reference.random.random.engine.entities.secure;
+
+
+
diff --git a/reference/random/random.engine.xml b/reference/random/random.engine.xml
new file mode 100644
index 000000000000..25800c9346cb
--- /dev/null
+++ b/reference/random/random.engine.xml
@@ -0,0 +1,63 @@
+
+
+ The Random\Engine interface
+ Random\Engine
+
+
+
+
+
+ &reftitle.intro;
+
+
+
+
+
+
+
+ &reftitle.interfacesynopsis;
+
+
+
+ Random\Engine
+
+
+
+
+ Random\Engine
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+ &reference.random.random.engine.generate;
+
+
+
diff --git a/reference/random/random.engine.xoshiro256starstar.xml b/reference/random/random.engine.xoshiro256starstar.xml
new file mode 100644
index 000000000000..921f0c5a91bb
--- /dev/null
+++ b/reference/random/random.engine.xoshiro256starstar.xml
@@ -0,0 +1,69 @@
+
+
+ The Random\Engine\Xoshiro256StarStar class
+ Random\Engine\Xoshiro256StarStar
+
+
+
+
+
+ &reftitle.intro;
+
+ Implements the xoshiro256** algorithm.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\Engine\Xoshiro256StarStar
+
+
+
+
+ final
+ Random\Engine\Xoshiro256StarStar
+
+
+
+ Random\Engine
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+
+ &reference.random.random.engine.entities.xoshiro256starstar;
+
+
+
diff --git a/reference/random/random.randomerror.xml b/reference/random/random.randomerror.xml
new file mode 100644
index 000000000000..a6992be66414
--- /dev/null
+++ b/reference/random/random.randomerror.xml
@@ -0,0 +1,73 @@
+
+
+ The Random\RandomError class
+ Random\RandomError
+
+
+
+
+
+ &reftitle.intro;
+
+
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\RandomError
+
+
+
+
+ Random\RandomError
+
+
+
+ extends
+ Error
+
+
+
+ Throwable
+
+
+
+ &InheritedProperties;
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random.randomexception.xml b/reference/random/random.randomexception.xml
new file mode 100644
index 000000000000..31659d180457
--- /dev/null
+++ b/reference/random/random.randomexception.xml
@@ -0,0 +1,73 @@
+
+
+ The Random\RandomException class
+ Random\RandomException
+
+
+
+
+
+ &reftitle.intro;
+
+
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\RandomException
+
+
+
+
+ Random\RandomException
+
+
+
+ extends
+ Exception
+
+
+
+ Throwable
+
+
+
+ &InheritedProperties;
+
+
+ &InheritedMethods;
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random.randomizer.xml b/reference/random/random.randomizer.xml
new file mode 100644
index 000000000000..378af106738d
--- /dev/null
+++ b/reference/random/random.randomizer.xml
@@ -0,0 +1,89 @@
+
+
+ The Random\Randomizer class
+ Random\Randomizer
+
+
+
+
+
+ &reftitle.intro;
+
+ Provides a high-level API to the randomness provided by an Random\Engine.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Random\Randomizer
+
+
+
+
+ final
+ Random\Randomizer
+
+
+
+ &Properties;
+
+ public
+ readonly
+ Engine
+ engine
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+
+
+ &reftitle.properties;
+
+
+ engine
+
+
+
+
+
+
+
+
+
+
+
+ &reference.random.random.entities.randomizer;
+
+
+
diff --git a/reference/random/random/engine/generate.xml b/reference/random/random/engine/generate.xml
new file mode 100644
index 000000000000..094839f66ed3
--- /dev/null
+++ b/reference/random/random/engine/generate.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine::generate
+ Generates randomness
+
+
+
+ &reftitle.description;
+
+ abstract public stringRandom\Engine::generate
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine::generate example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/mt19937/construct.xml b/reference/random/random/engine/mt19937/construct.xml
new file mode 100644
index 000000000000..f2e0e0b0e2d4
--- /dev/null
+++ b/reference/random/random/engine/mt19937/construct.xml
@@ -0,0 +1,100 @@
+
+
+
+ Random\Engine\Mt19937::__construct
+ Constructs a new Mt19937 engine
+
+
+
+ &reftitle.description;
+
+ public Random\Engine\Mt19937::__construct
+ intnullseed
+ intmode
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ seed
+
+
+
+
+
+
+
+ mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Mt19937::__construct example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/mt19937/debuginfo.xml b/reference/random/random/engine/mt19937/debuginfo.xml
new file mode 100644
index 000000000000..493e551eab53
--- /dev/null
+++ b/reference/random/random/engine/mt19937/debuginfo.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Mt19937::__debugInfo
+ Returns the internal state of the engine
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\Mt19937::__debugInfo
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Mt19937::__debugInfo example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/mt19937/generate.xml b/reference/random/random/engine/mt19937/generate.xml
new file mode 100644
index 000000000000..3e4be1a57e40
--- /dev/null
+++ b/reference/random/random/engine/mt19937/generate.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Mt19937::generate
+ Generates 32 Bits of randomness
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Engine\Mt19937::generate
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Mt19937::generate example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/mt19937/serialize.xml b/reference/random/random/engine/mt19937/serialize.xml
new file mode 100644
index 000000000000..62043c9c17de
--- /dev/null
+++ b/reference/random/random/engine/mt19937/serialize.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Mt19937::__serialize
+ Serializes the Mt19937 object
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\Mt19937::__serialize
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Mt19937::__serialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/mt19937/unserialize.xml b/reference/random/random/engine/mt19937/unserialize.xml
new file mode 100644
index 000000000000..77b2d1e11095
--- /dev/null
+++ b/reference/random/random/engine/mt19937/unserialize.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Engine\Mt19937::__unserialize
+ Deserializes the data parameter into a Mt19937 object
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\Mt19937::__unserialize
+ arraydata
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ data
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Mt19937::__unserialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/construct.xml b/reference/random/random/engine/pcgoneseq128xslrr64/construct.xml
new file mode 100644
index 000000000000..fafc5ba55664
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/construct.xml
@@ -0,0 +1,91 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::__construct
+ Constructs a new PCG Oneseq 128 XSL RR 64 engine
+
+
+
+ &reftitle.description;
+
+ public Random\Engine\PcgOneseq128XslRr64::__construct
+ stringintnullseed
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ seed
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::__construct example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/debuginfo.xml b/reference/random/random/engine/pcgoneseq128xslrr64/debuginfo.xml
new file mode 100644
index 000000000000..7556a0606c66
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/debuginfo.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::__debugInfo
+ Returns the internal state of the engine
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\PcgOneseq128XslRr64::__debugInfo
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::__debugInfo example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/generate.xml b/reference/random/random/engine/pcgoneseq128xslrr64/generate.xml
new file mode 100644
index 000000000000..af464611be7b
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/generate.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::generate
+ Generates 64 Bits of randomness
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Engine\PcgOneseq128XslRr64::generate
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::generate example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/jump.xml b/reference/random/random/engine/pcgoneseq128xslrr64/jump.xml
new file mode 100644
index 000000000000..3321f091b940
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/jump.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::jump
+ Efficiently moves the engine ahead multiple steps
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\PcgOneseq128XslRr64::jump
+ intadvance
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ advance
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::jump example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/serialize.xml b/reference/random/random/engine/pcgoneseq128xslrr64/serialize.xml
new file mode 100644
index 000000000000..e9c8d04d3d50
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/serialize.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::__serialize
+ Serializes the PcgOneseq128XslRr64 object
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\PcgOneseq128XslRr64::__serialize
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::__serialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/pcgoneseq128xslrr64/unserialize.xml b/reference/random/random/engine/pcgoneseq128xslrr64/unserialize.xml
new file mode 100644
index 000000000000..889893623143
--- /dev/null
+++ b/reference/random/random/engine/pcgoneseq128xslrr64/unserialize.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Engine\PcgOneseq128XslRr64::__unserialize
+ Deserializes the data parameter into a PcgOneseq128XslRr64 object
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\PcgOneseq128XslRr64::__unserialize
+ arraydata
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ data
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\PcgOneseq128XslRr64::__unserialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/secure/generate.xml b/reference/random/random/engine/secure/generate.xml
new file mode 100644
index 000000000000..cb5acd561410
--- /dev/null
+++ b/reference/random/random/engine/secure/generate.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Secure::generate
+ Generates cryptographically secure randomness
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Engine\Secure::generate
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Secure::generate example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/construct.xml b/reference/random/random/engine/xoshiro256starstar/construct.xml
new file mode 100644
index 000000000000..00e4fca63b17
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/construct.xml
@@ -0,0 +1,91 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::__construct
+ Constructs a new xoshiro256** engine
+
+
+
+ &reftitle.description;
+
+ public Random\Engine\Xoshiro256StarStar::__construct
+ stringintnullseed
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ seed
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::__construct example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/debuginfo.xml b/reference/random/random/engine/xoshiro256starstar/debuginfo.xml
new file mode 100644
index 000000000000..62417c39a92a
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/debuginfo.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::__debugInfo
+ Returns the internal state of the engine
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\Xoshiro256StarStar::__debugInfo
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::__debugInfo example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/generate.xml b/reference/random/random/engine/xoshiro256starstar/generate.xml
new file mode 100644
index 000000000000..b5dfc0026b94
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/generate.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::generate
+ Generates 64 Bits of randomness
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Engine\Xoshiro256StarStar::generate
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::generate example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/jump.xml b/reference/random/random/engine/xoshiro256starstar/jump.xml
new file mode 100644
index 000000000000..b03c04d44ebf
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/jump.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::jump
+ Efficiently moves the engine ahead by 2^128 steps
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\Xoshiro256StarStar::jump
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::jump example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/jumplong.xml b/reference/random/random/engine/xoshiro256starstar/jumplong.xml
new file mode 100644
index 000000000000..e432f092bc2a
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/jumplong.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::jumpLong
+ Efficiently moves the engine ahead by 2^192 steps
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\Xoshiro256StarStar::jumpLong
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::jumpLong example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/serialize.xml b/reference/random/random/engine/xoshiro256starstar/serialize.xml
new file mode 100644
index 000000000000..eb3174b3e453
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/serialize.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::__serialize
+ Serializes the Xoshiro256StarStar object
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Engine\Xoshiro256StarStar::__serialize
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::__serialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/engine/xoshiro256starstar/unserialize.xml b/reference/random/random/engine/xoshiro256starstar/unserialize.xml
new file mode 100644
index 000000000000..de63aca53ec7
--- /dev/null
+++ b/reference/random/random/engine/xoshiro256starstar/unserialize.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Engine\Xoshiro256StarStar::__unserialize
+ Deserializes the data parameter into a Xoshiro256StarStar object
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Engine\Xoshiro256StarStar::__unserialize
+ arraydata
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ data
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Engine\Xoshiro256StarStar::__unserialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/construct.xml b/reference/random/random/randomizer/construct.xml
new file mode 100644
index 000000000000..930baebbdee6
--- /dev/null
+++ b/reference/random/random/randomizer/construct.xml
@@ -0,0 +1,91 @@
+
+
+
+ Random\Randomizer::__construct
+ Constructs a new Randomizer
+
+
+
+ &reftitle.description;
+
+ public Random\Randomizer::__construct
+ Random\Enginenullenginenew Random\Engine\Secure()
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::__construct example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/getbytes.xml b/reference/random/random/randomizer/getbytes.xml
new file mode 100644
index 000000000000..e604fd1d3267
--- /dev/null
+++ b/reference/random/random/randomizer/getbytes.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Randomizer::getBytes
+ Get random bytes
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Randomizer::getBytes
+ intlength
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ length
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::getBytes example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/getint.xml b/reference/random/random/randomizer/getint.xml
new file mode 100644
index 000000000000..00897d73f1b5
--- /dev/null
+++ b/reference/random/random/randomizer/getint.xml
@@ -0,0 +1,95 @@
+
+
+
+ Random\Randomizer::getInt
+ Get a uniformly chosen integer from an interval
+
+
+
+ &reftitle.description;
+
+ public intRandom\Randomizer::getInt
+ intmin
+ intmax
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ min
+
+
+
+
+
+
+
+ max
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::getInt example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/nextint.xml b/reference/random/random/randomizer/nextint.xml
new file mode 100644
index 000000000000..98b8862fdc4c
--- /dev/null
+++ b/reference/random/random/randomizer/nextint.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Randomizer::nextInt
+ Get a positive integer
+
+
+
+ &reftitle.description;
+
+ public intRandom\Randomizer::nextInt
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::nextInt example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/pickarraykeys.xml b/reference/random/random/randomizer/pickarraykeys.xml
new file mode 100644
index 000000000000..5689d8b00b0d
--- /dev/null
+++ b/reference/random/random/randomizer/pickarraykeys.xml
@@ -0,0 +1,95 @@
+
+
+
+ Random\Randomizer::pickArrayKeys
+ Select random array keys
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Randomizer::pickArrayKeys
+ arrayarray
+ intnum
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ array
+
+
+
+
+
+
+
+ num
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::pickArrayKeys example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/serialize.xml b/reference/random/random/randomizer/serialize.xml
new file mode 100644
index 000000000000..f68d5f796a57
--- /dev/null
+++ b/reference/random/random/randomizer/serialize.xml
@@ -0,0 +1,77 @@
+
+
+
+ Random\Randomizer::__serialize
+ Serializes the Randomizer object
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Randomizer::__serialize
+
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+ &no.function.parameters;
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::__serialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/shufflearray.xml b/reference/random/random/randomizer/shufflearray.xml
new file mode 100644
index 000000000000..c52293d939db
--- /dev/null
+++ b/reference/random/random/randomizer/shufflearray.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Randomizer::shuffleArray
+ Shuffle the values of an array
+
+
+
+ &reftitle.description;
+
+ public arrayRandom\Randomizer::shuffleArray
+ arrayarray
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ array
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::shuffleArray example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/shufflebytes.xml b/reference/random/random/randomizer/shufflebytes.xml
new file mode 100644
index 000000000000..627e9c15fa03
--- /dev/null
+++ b/reference/random/random/randomizer/shufflebytes.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Randomizer::shuffleBytes
+ Shuffle the bytes of a string
+
+
+
+ &reftitle.description;
+
+ public stringRandom\Randomizer::shuffleBytes
+ stringbytes
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ bytes
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::shuffleBytes example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/random/random/randomizer/unserialize.xml b/reference/random/random/randomizer/unserialize.xml
new file mode 100644
index 000000000000..6aa8dec2edcd
--- /dev/null
+++ b/reference/random/random/randomizer/unserialize.xml
@@ -0,0 +1,86 @@
+
+
+
+ Random\Randomizer::__unserialize
+ Deserializes the data parameter into a Randomizer object
+
+
+
+ &reftitle.description;
+
+ public voidRandom\Randomizer::__unserialize
+ arraydata
+
+
+
+
+
+ &warn.undocumented.func;
+
+
+
+
+ &reftitle.parameters;
+
+
+ data
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Random\Randomizer::__unserialize example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
diff --git a/reference/csprng/reference.xml b/reference/random/reference.xml
similarity index 73%
rename from reference/csprng/reference.xml
rename to reference/random/reference.xml
index 09dea4f27a1a..2ca19f6c2a38 100644
--- a/reference/csprng/reference.xml
+++ b/reference/random/reference.xml
@@ -1,13 +1,10 @@
-
+
+ Random &Functions;
-
- CSPRNG &Functions;
-
- &reference.csprng.entities.functions;
+ &reference.random.entities.functions;
-
-
diff --git a/reference/csprng/setup.xml b/reference/random/setup.xml
similarity index 72%
rename from reference/csprng/setup.xml
rename to reference/random/setup.xml
index 790b1c921d8b..351c34b609ed 100644
--- a/reference/csprng/setup.xml
+++ b/reference/random/setup.xml
@@ -1,31 +1,28 @@
-
-
-
+
&reftitle.setup;
-
+
&reftitle.required;
&no.requirement;
-
+
&reftitle.install;
&no.install;
-
+
&reftitle.runtime;
&no.config;
-
+
&reftitle.resources;
&no.resource;
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+