Преступник в том, что np.random.shuffle изменяет массив на месте и никогда не возвращает значение, упорядочивая записи в произвольном порядке. Ваш код изменяет новый и временный массив, содержащий углы, который изменяется, но у вас нет на него ссылки, поэтому вы не видите никаких изменений. Проверить:
>>> import numpy as np
>>> a = np.arange(16).reshape((4,4))
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> np.random.shuffle(a)
>>> a
array([[12, 13, 14, 15],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[ 0, 1, 2, 3]])
>>> np.random.shuffle(a)
>>> a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[12, 13, 14, 15],
[ 8, 9, 10, 11]])
>>> a[[0,0,-1,-1],[0,-1,0,-1]]
array([ 0, 3, 8, 11])
>>> np.random.shuffle(a[[0,0,-1,-1],[0,-1,0,-1]])
>>> b = a[[0,0,-1,-1],[0,-1,0,-1]]
>>> np.random.shuffle(b)
>>> b
array([ 0, 11, 8, 3])
>>>
Теперь вам просто нужно переназначить углы, используя b. И позаботьтесь, чтобы углы в моем примере были взяты из уже перетасованного массива a.