\begin{algorithm} \caption{Random Sample} \begin{algorithmic} \INPUT an integer $m$ and an integer $n$ , where $0 \le m \le n$ \OUTPUT a random subset of $\{1, 2, 3, \cdots, n\}$ with size $m$ \PROCEDURE{RandomSample}{$m, n$} \IF{$m = 0$} \RETURN $\emptyset$ \ENDIF \STATE $S =$ \CALL{RandomSample}{$m - 1, n - 1$} \STATE $i =$ \CALL{Random}{$1, n$} \IF{$i \in S$} \STATE $S = S \cup \{n\}$ \ELSE \STATE $S = S \cup \{i\}$ \ENDIF \RETURN $S$ \ENDPROCEDURE \end{algorithmic} \end{algorithm}