It seems ‘legit’. As it’s happening sometimes use ‘print string’ node for debugging. But print your random integer value instead of ‘hello’. Analyze it and see which waypoints causing trouble.
In viewport you can press P to see green navmesh area. If your waypoint is out of that area,it’s not accessible. Also check Z axis of your points. If points are above/below ground it can cause trouble.
There is a flaw with your code. For example, lets say there are 4 waypoints. Your Random Int in Range will return an int between 0 and 4 (5 possible numbers), but the array only contains 4 indexes (0-3, 4 numbers). To fix this just subtract 1 from the length. Then hook up the difference to the Max input. I hope I explained this well enough
A key point that people starting out with blueprint seem to forget is that arrays ALWAYS start at 0, so you have to adjust for this by either subtracting one or adding in a blank array variable placement holder. Its quite common in programming.
Or just use Last Index instead of Length, since the Length node gives you the number of entries in an array while Last Index gives you the last index in the array.