I want to allocate the probability of 1000 scenarios. (|S|=1000). And I don’t want all these possibilities to be considered equal. (not to be; P(s)=0.001 for all s).
How can I allocate an unequal probability? I mean we have:
sum(s,p(s))=1 and for all s,s’: s<>s’ ; we don’t have p(s)=p(s’).

You want a guarantee that s <> t implies p(s) <> p(t).

You want to avoid the constant distribution, i.e. p(S) = 1 / card(S).

If you mean the first, I can’t really help. If you sample a continuous GAMS distribution like uniform(0,1) I would be surprised if you get duplicates very quickly or very often but I don’t have a guarantee at hand.

If you mean the second, do this (untested):

set s / 1 * 1000 /;
scalar tot;
parameter p(s);
execseed = 1 + gmillisec(jnow);
p(s) = uniform(0,1);
tot = sum{s, p(s)};
p(s) = p(s) / tot;