You could delete the column/recipe so it can't be picked again. You can use 2 arrays I guess, one that stores the original data and one that you use to pick from that gets chopped down.
There's also something called a permutation table under AdvancedRandom plugin where it creates a set of numbers in a random order, where it would generate from 0 to array.height(number of columns). You would select advancedrandom.permutationtable(0) for the first recipe and then (1) and so on.
If you mean that you want ingredients to come out one at a time then you could have the column/recipe and run through each row, or if you mean randomly pick one at a time then you can create permutation as mentioned above for number of rows/ingredients.