С NumPy вы должны думать с точки зрения целых массивов. Таким образом, применение направленных дельт, основанных на некотором случайном числе, должно работать со всеми координатами одновременно.
Например,
(если предположить, что xpositions и ypositions являются массивами):
directions = np.random.randint(1,4,25)
ypositions += directions == NORTH
ypositions -= directions == SOUTH
xpositions += directions == EAST
xpositions -= directions == WEST