Hybrid Sequence:
Modify $\lib{samp-rand}$ to keep track of values that have been chosen previously and record whether a repeat occurs (with a bad event). These changes are all internal to the library and do not affect its output behavior.
Modify the library to re-sample $R$ in the case of a repeat. The library's behavior changes only after a bad event, whose probability is $\Birthday(q(\secpar),2^\secpar)$, if the adversary makes $q(\secpar)$ calls to $\bdaysamp$. As mentioned above, this probability is negligible since $q$ is a polynomial. Hence, the change is indistinguishable.
The logic of the if-statement has the effect that $\bdaysamp$ ultimately samples uniformly from $\bits^\secpar \setminus \mathcal{R}$. Thus, the library's code can be simplified, resulting in $\lib{samp-uniq}$.
$\lib{samp-rand}$
$\bdaysamp$( ):
$R \gets \bits^\secpar$
return $R$