This shuffle is going to be pretty expensive, especially if the tabu list is at all long. A circular list would probably be a lot faster and actually easier to implement.