Rick, the random access method is a great technique. I was able to help a colleague with it just this week. The goal was to assign a randomly sampled value to a subject in another data set. I figured out how to do it using code like that below. My question is: Why is the do loop necessary? It won't work without it.

***Randomly assign a car from sashelp.cars to each student of sashelp.class;
data classCar;
do i=1 to N by 1;
set sashelp.class point=i nobs=N;
call streaminit(54321);
row_i=ceil(NRows*rand("UNIFORM"));
set sashelp.cars(keep=make model) point=row_i nobs=NRows;
output;
end;
STOP; *<------<<<<< DO NOT OMIT THIS!!!;
run;