Depends on how many times you run the loop but this should be fine. Switches are pretty performant and the way you wrote this doesn’t jump out at me with any obvious issues. You put a lot of work into that!
Personally, I would have had a single string with all of the possible letters I wanted to use, then on each loop get a substring of the string containing all the letters. Substring would start at a random index and go for a length of 1. That would be much shorter for you to write