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