D'autres réponses se concentrent sur la mécanique du recalcul et le rôle des fonctions volatiles, mais je pense que cela manque une partie de l'essentiel de la question. Il aborde les règles qui ont été utilisées mais pas tant le "pourquoi". Je vais me concentrer là-dessus.
Concept design
Permettez-moi de commencer par un concept de conception et les blocs de construction de la plupart des feuilles de calcul modernes. Il y a une "division des responsabilités". Les fonctions sont des routines dédiées qui effectuent une tâche spécifique et le font chaque fois qu'on leur demande. Indépendamment de cela, l'application de feuille de calcul contrôle quand on lui demande.
Les fonctions elles-mêmes ne contiennent aucune logique pour choisir de recalculer ou de ne pas recalculer. La nature de toutes les fonctions Excel est d'effectuer un certain type d'opération chaque fois qu'elles sont déclenchées. Aucune fonction n'a sa propre "mémoire" de sa valeur actuelle, ou un historique de ses calculs passés. Il n'a aucun moyen de savoir si c'est la première fois qu'on lui demande de faire son travail. Aucune fonction native n'a donc la capacité de s'exécuter qu'une seule fois. Si une fonction est recalculée, elle fera ce pour quoi elle est conçue et produira une nouvelle valeur.
L'application de feuille de calcul contient une certaine intelligence qui lui permet de gagner du temps en évitant les recalculs inutiles (comme décrit dans la réponse de teylyn). La seule fois où le recalcul est ignoré, c'est si l'application sait que la valeur de la fonction n'a pas été affectée par les modifications de la feuille de calcul qui ont déclenché la nécessité de recalculer les choses.
Et si vous avez besoin d'exécuter une fonction une fois, puis de conserver sa valeur? Prenez votre exemple de produire un nombre aléatoire et de ne pas modifier le résultat. Cela décrit la création de constantes générées de manière aléatoire, et vous pouvez le faire avec Excel.
Excel ne peut pas savoir comment vous souhaitez utiliser ses capacités; si vous souhaitez continuer à produire de nouvelles valeurs ou conserver le dernier ensemble. Chaque option est un cas d'utilisation pris en charge par Excel. Excel prend en charge les deux cas en vous donnant les outils pour calculer de nouvelles valeurs et les outils pour conserver les anciennes valeurs. Vous pouvez construire ce que vous voulez. Mais l'utilisateur a la responsabilité de lui faire faire ce qu'il veut.
Logique de fonction
Regardons donc la logique de ce que fait la fonction. Cela pourrait-il être logique que la logique de recalcul ignore une fonction aléatoire car sa valeur ne devrait pas être affectée par d'autres modifications dans la feuille de calcul?
Le fait que la valeur d'une fonction change ou non lors du recalcul dépend de son objectif et de sa base. Un calcul sur des valeurs constantes produira toujours le même résultat. Une opération basée sur des valeurs de cellule qui n'ont pas changé produira le même résultat.
Cependant, certaines fonctions sont conçues avec l'intention et le but de produire un résultat différent à chaque fois. Prenons par exemple les fonctions basées sur l'heure actuelle. Ils produiront un nouveau résultat basé sur le temps de recalcul. Vous ne pouvez pas avoir une fonction dont le but est de produire une valeur basée sur l'heure actuelle et de ne pas la mettre à jour lors du recalcul.
L'objectif du contrôle de recalcul est de toujours faire en sorte que tout reflète l'état actuel des choses lorsque le recalcul est déclenché. Ce critère ne serait pas rempli si les fonctions basées sur l'heure actuelle n'étaient pas mises à jour.
Les fonctions "aléatoires", comme RANDBETWEEN, ont pour but de produire un nouveau nombre aléatoire lors du recalcul. C'est ce qu'ils sont censés faire. Vous pourriez faire valoir que le recalcul pourrait être ignoré car la valeur ne devrait pas être affectée par d'autres choses se produisant sur la feuille de calcul.
Si tel était le comportement par défaut, vous mettriez à jour la feuille de calcul, mais la valeur aléatoire resterait constante. Ce n'est pas un comportement très aléatoire. Cela prendrait en charge un cas d'utilisation mais pas l'autre. Pour en revenir au concept de base, il est géré comme n'importe quelle autre fonction. Le comportement par défaut consiste à demander à Excel de le recalculer. Si vous souhaitez conserver la valeur précédente pour votre cas d'utilisation, c'est à vous de le faire avec les outils disponibles.