\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}