Hey guys! Recently I posted this question "Picking entities from a group[^]" on the codeproject. I was advised to move it to this forum because some of you clever ones may have a way to go. My problem is that I have a group of n people (in my example I said 8 but let's say a minimum of four). I want each person in the group to point to a different person in the group. This means no person can point to himself. Also if a person points to some person in the group, no other person in the group can point to the same person. So everyone in the group must point to a person, and everyone in the group is pointed at. I also want the process to be random. For now I've already done this by creating a generic list of 'allowed' persons, pick a random person from the list, remove that person from the list and so on. Now here comes the difficult part.. I also want to be able to configure impossible combinations. Like Person A cannot point to Person B and Person B cannot point to Person A. This makes the process way more difficult. I'd like to have the ability to test whether a certain configuration is possible and to only pick between these possible 'combination sets'. My solution now, is a trial on error method. I start a large loop and start to random picking just like above. I generate a list of possibilities and pick one of the possibilities. If the list of possibilities happens to be empty, that means I ran into an impossible 'combination set' and start the entire process again. If the picking fails a certain number of times, I assume the configuration is impossible. As you understand my solution for now isn't ideal, 'cause there's no way to check whether a configuration is possible and if my picking routine tells me the configuration is not possible you're not actually sure the config is not possible. I think I got my problem explained well as my English is fairly good but way from perfect. Hope you guys can point me in a good direction. Thanks! Eduard
.: I love it when a plan comes together :.