They are stored in an array, so I’d use a random range starting with 0 for minimum, and the length of the array -1. You can then fetch a random index to get a random position. You can then use MoveTo if the actor is an AI. If the actor isn’t an AI, you will need to get your controller to navigate to that position (which is more difficult). Once it moves, use a random range again to get a float for the wait time (the range you want) and feed it into your delay node. After the delay node, call your movement function again.
Another option is using a blueprint Timer with a random time (since you can’t use a delay node within a function).