\begin{algorithm}
        \caption{Random Number Generator}
        \begin{algorithmic}
        \PROCEDURE{Random}{$a, b$}
            \STATE $n = \lceil\log(b - a + 1)\rceil$
            \WHILE{\TRUE}
                \STATE $result = 0$
                \FOR{$i = 0$ \TO $n - 1$}
                    \STATE $result = result$ \& (\CALL{Random}{$0, 1$} << $i$)
                \ENDFOR
                \IF{$result \le b - a$}
                    \RETURN $a + result$
                \ENDIF
            \ENDWHILE
        \ENDPROCEDURE
        \end{algorithmic}
        \end{algorithm}