Code review comment: Sorry for the late addition: You might want to test some more extreme values. VarIntCoder is variable sized, so around those size boundaries might be good to test. https://github.com/apache/beam/blob/50fcf55d60e8fa7a8399d63e030c930a2d45402a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/VarIntCoder.java#L29

Code under review:
public void testSingleCallOrderingWithShuffle() {
    
    List<Integer> perKeyElements =
        Lists.newArrayList(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8);
    Collections.shuffle(perKeyElements);
    List<String> allKeys =
        Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).stream()
            .map(elm -> String.format("k%s", elm))
            .collect(Collectors.toList());
    PCollection<KV<String, Integer>> kvSeeds =
        pipeline
            .apply("Generate all keys", Create.of(allKeys))
            .apply(
                "Map into KV pairs",
                MapElements.into(
                        TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers()))
                    .via(key -> KV.of(key, 0)))
            .apply("Shuffle by key", Reshuffle.of());

    PCollection<KV<String, Boolean>> result =
        kvSeeds
            .apply(
                "Generate ordered values per key",
                FlatMapElements.into(
                        TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers()))
                    .via(
                        input -> {
                          return perKeyElements.stream()
                              .map(number -> KV.of(input.getKey(), number))
                              .collect(Collectors.toList());
                        }))
            .apply("Reshuffle", Reshuffle.of())
            .apply("Verify", ParDo.of(new VerifyDoFn<>(perKeyElements)));

    PAssert.that(result)
        .containsInAnyOrder(allKeys.stream().map(k -> KV.of(k, true)).collect(Collectors.toList()));
    pipeline.run();
  }

Line commented on: Lists.newArrayList(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8);

Revised code:
public void testSingleCallOrderingWithShuffle() {
    
    List<Integer> perKeyElements =
        Lists.newArrayList(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 123456789);
    Collections.shuffle(perKeyElements);
    List<String> allKeys =
        Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).stream()
            .map(elm -> String.format("k%s", elm))
            .collect(Collectors.toList());
    PCollection<KV<String, Integer>> kvSeeds =
        pipeline
            .apply("Generate all keys", Create.of(allKeys))
            .apply(
                "Map into KV pairs",
                MapElements.into(
                        TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers()))
                    .via(key -> KV.of(key, 0)))
            .apply("Shuffle by key", Reshuffle.of());

    PCollection<KV<String, Boolean>> result =
        kvSeeds
            .apply(
                "Generate ordered values per key",
                FlatMapElements.into(
                        TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers()))
                    .via(
                        input -> {
                          return perKeyElements.stream()
                              .map(number -> KV.of(input.getKey(), number))
                              .collect(Collectors.toList());
                        }))
            .apply("Reshuffle", Reshuffle.of())
            .apply("Verify", ParDo.of(new VerifyDoFn<>(perKeyElements)));

    PAssert.that(result)
        .containsInAnyOrder(allKeys.stream().map(k -> KV.of(k, true)).collect(Collectors.toList()));
    pipeline.run();
  }