Lo explico nada más por si alguien no entiende.
Primero importar la librería math de dart con import dart:math.
Declaro las variables necesarias y uso reduce(max) y reduce(min) que gracias a la librería me busca el mayor y el menor en el arreglo. Vi que algunos usaban length -1 pero eso sería un problema si 40 estuviera en otra posición o si hubieran más de 5 números. Con reduce buscamos dentro de todo el arreglo el mayor y menor de forma automática.
Luego con fold básicamente lo que hago es sumar cada uno de los elementos que hay dentro del arreglo.
Por último una operación simple entre la suma de todos los elementos dividido la cantidad de elementos para sacar el promedio y ya está.
Saludos!