Let us finally present the pseudorandom number generator $\chi_{\textit{15Rairo}}$
which is based on random walks in $\Gamma_{\{b\}}(f)$. 
More precisely, let be given a Boolean map $f:\Bool^{\mathsf{N}} \rightarrow 
\Bool^\mathsf{N}$,
a PRNG \textit{Random},
an integer $b$ that corresponds an iteration number (\textit{i.e.}, the length of the walk), and 
an initial configuration $x^0$. 
Starting from $x^0$, the algorithm repeats $b$ times 
a random choice of which edge to follow and traverses this edge 
provided it is allowed to traverse it, \textit{i.e.}, 
when $\textit{Random}(1)$ is not null. 
The final configuration is thus outputted.
This PRNG is formalized in Algorithm~\ref{CI Algorithm}.



\begin{algorithm}[ht]
%\begin{scriptsize}
\KwIn{a function $f$, an iteration number $b$, an initial configuration $x^0$ ($n$ bits)}
\KwOut{a configuration $x$ ($n$ bits)}
$x\leftarrow x^0$\;
\For{$i=0,\dots,b-1$}
{
\If{$\textit{Random}(1) \neq 0$}{
$s\leftarrow{\textit{Random}(n)}$\;
$x\leftarrow{F_f(s,x)}$\;
}
}
return $x$\;
%\end{scriptsize}
\caption{Pseudo Code of the $\chi_{\textit{15Rairo}}$ PRNG}
\label{CI Algorithm}
\end{algorithm}


This PRNG is slightly different from $\chi_{\textit{14Secrypt}}$
recalled in Algorithm~\ref{CI Algorithm}.
As this latter, the length of the random 
walk of our algorithm is always constant (and is equal to $b$). 
However, in the current version, we add the constraint that   
the probability to execute the function $F_f$ is equal to 0.5 since
the output of $\textit{Random(1)}$ is uniform in $\{0,1\}$.  
This constraint is added to match the theoretical framework of 
Sect.~\ref{sec:hypercube}.



Notice that the chaos property of $G_f$ given in Sect.\ref{sec:proofOfChaos}
only requires that the graph $\Gamma_{\{b\}}(f)$ is strongly connected.
Since the $\chi_{\textit{15Rairo}}$ algorithme 
only adds propbability constraints on existing edges, 
it preserves this property. 


