An incomplete shard snapshot will prevent a shard from moving away from a node (see `SnapshotInProgressAllocationDecider`). That means that when a shard snapshot completes it may become possible to perform some shard movements that previously were not possible, so we should trigger a reroute to start those movements. AFAICT we do not trigger such a reroute today.
test/framework/src/main/java/org/elasticsearch/test/ESTestCase.java
public static int randomInt(int max) {
        return RandomizedTest.randomInt(max);
    }
    
    public static ByteSizeValue randomByteSizeValue() {
        return ByteSizeValue.ofBytes(randomLongBetween(0L, Long.MAX_VALUE >> 16));
    }
    
    @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> T randomFrom(T... array) {
        return randomFrom(random(), array);
    }
    
    @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> T randomFrom(Random random, T... array) {
        return RandomPicks.randomFrom(random, array);
    }
    
    @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> T randomFrom(Random random, Supplier<T>... array) {
        Supplier<T> supplier = RandomPicks.randomFrom(random, array);
        return supplier.get();
    }
    
    public static <T> T randomFrom(List<T> list) {
        return RandomPicks.randomFrom(random(), list);