@Arhowk: you can manage with only 1 array. Same principle, however since we know the number of indexes for first/second ability etc, it can be like this
AbiArray[0] = HolyLight
blah blah - 5 choices for first
AbiArray[5]= DeathCoil
blah blah -3 choices for second
Then we add it
Add AbiArray [random int between 0 and 4]
Add AbiArray [random int between 5 and 7]
So on and so forth.