It looks basically ok, and you didn’t explain what the problem is.
But I’m thinking it might be here
because that random node has a lot of wires coming out of it. How the engine works, is it will call the node for each wire, so you’re probably getting a lot of weirdness?
The answer is to call the random node once, and put the result in a variable, and then connect all those wires to that variable.