In general, you cannot rely on the order of solutions, in a somewhat weird system member might be implemented differently:
member2(X,[_|Xs]) :-
member2(X,Xs).
member2(X,[X|_]).
min(L, Min) :-
sort(L, S),
member2(Min, S).
yielding:
?- min([2,1,4,3,2],X).
X = 4 ;
X = 3 ;
X = 2 ;
X = 1.
it becomes reliable if the order is made explicit by putting the original list into relation with a list of the solutions in correct order. In your case this amounts to the sort predicate (as long as you accept that double entries are not reported twice), for a general terminating predicate, this can be done by using setof/2 and determining the order in a seperate step, as CapelliC already mentioned.