Hola Luz,
el problema q tienes con tu macro es que estas llamando a un Data Step
dentro de otro, es decir, estas llamando la macro gen que es un data
step dentro de un data _null_ y por eso no te resulta. No estoy seguro
cual es el fin de generar numeros aleatorios de esta manera ya no
entiendo bien tu proceso, Si nos puedes dar mas detalles a lo mejor
puede que exista una manera mas facil de hacerlo.
De todas formas aqui tienes tu codigo "up & running":
%macro genLasug(n=,start=,end=,varname=,seed=);
do subj=1 to &n;
&varname=int((&end-&start+1)*ranuni(&seed)+&start);
end;
drop subj;
%mend;
%macro example(bound);
%global random;
data _null_;
%genLasug(n=10,start=50,end=&bound,varname=aleatorio,seed=0);
call symput('random',aleatorio);
run;
%mend;
%example(100);
%put random=&random;
SASludos,
Alberto