Many Constraint Programming systems has a search heuristic (called "indomain_random" or something similar), which give solutions in random order (given some seed). Here's a MiniZinc model for a simple problem:
var 20..30: A;
var 0..10: B;
solve :: int_search([A,B], first_fail, indomain_random, complete) satisfy;
constraint A + B <= 25;
output [ show([A,B])];
Here's some solutions for a couple of seeds using Gecode's FlatZinc solver:
Seed Solution
---------------
0 [22,0]
2 [25,0]
3 [22,2]