VR has nothing to do with the logic you are trying to implement. You need to figure out a system that reads the music and based off certain highpoints in the music or a certain rythm events would be called.
Then for the randomization of the buttons you simply get all the locations where the buttons can appear and create an array of locations. Then when the event is triggered you spawn one of the buttons based off a random locationvector that you have saved in the location array.
Alternatively you can just place the buttons in the level get all those buttons and place them in an array. Then call an activate function you create on the button blueprints when you want one to appear. Again you can just get a random int in range to get a random button from the array.
Additionally you’d need to create an array with Active buttons so you know which buttons are not active yet when you want to activate a new button that is not active yet.