How to remove unwanted form state values before validation
The FormState class has a method for that: FormState::cleanValues(). From its description, it's the method you should use.


  This function can be used when a module wants to store all submitted form values, for example, by serializing them into a single database column. In such cases, all internal Form API values and all form button elements should not be contained, and this function allows their removal before the module proceeds to storage. Next to button elements, the following internal values are removed by default.
  
  
  form_id
  form_token
  form_build_id
  op
  


You simply call it before getting the submitted values.

public function validateForm(array &amp;$form, FormStateInterface $form_state) {
  $values = $form_state-&gt;cleanValues()-&gt;getValues();

  foreach ($values as $method =&gt; $fee) {
    if ($method != 'Free order') {
      if (!is_numeric($fee) || floatval($fee) &lt; 0) {
        $form_state-&gt;setErrorByName($method, t('Value must be a positive integer.'));
      }
    }
  }


Since FormState::cleanValues() returns the FormState object, you can simply call it in the same line you call  FormState::getValues() concatenating the two calls.

If you need to add more keys to remove from the submitted values, you could use FormState::setCleanValueKeys(), but keep in mind that:


The array passed to the method needs to contain also the default array keys Drupal would remove
The method alters the array keys that are removed from FormState::cleanValues() for every Drupal form