My initial approach would be to store all skills in an array. A second column could be used for the level of the skill if required.
When you want to generate the skills, using advanced random object, create a permutation table of length array.width. This creates a random order of numbers from 0 to the last row of the array.
Then the first three skills would be the first 3 numbers i.e. if 271840536 is generated then the skills to show are at array rows 2, 7 and 1.
Every time you can pick the skills with, array.at(advancedrandom.permutation(0)), array.at(advancedrandom.permutation(1)), array.at(advancedrandom.permutation(2)).
Any skills that are levelled up you would delete from the array before all of this so they can never be picked.