En bref — Excel propose deux générateurs de nombres aléatoires intégrés :
ALEA(), qui renvoie un décimal aléatoire de0jusqu'à1(mais jamais atteint), etALEA.ENTRE.BORNES(min; max), qui renvoie un entier aléatoire entreminetmaxavec les deux bornes incluses. Le fait unique qui explique toutes les surprises : les deux sont volatiles — elles génèrent un nouveau nombre à chaque modification, à chaqueF9, à chaque ouverture du fichier. « Mes nombres aléatoires changent tout le temps » n'est pas un bug ; c'est le principe même. Pour les verrouiller : Copier → Collage spécial → Valeurs. Et ALEA.ENTRE.BORNES répète — elle lance des dés, elle ne distribue pas des cartes.
=ALEA() ' -> 0,4173... décimal dans [0 ; 1[
=ALEA.ENTRE.BORNES(1; 6) ' -> 4 entier 1–6, les deux bornes incluses
=ALEA.ENTRE.BORNES(-10; 10) ' -> -3 les bornes négatives passent sans souci
=50 + (100 - 50) * ALEA() ' -> 73,9 décimal aléatoire dans [50 ; 100[
=ARRONDI(50 + 50*ALEA(); 2) ' -> 82,14 prix aléatoire à 2 décimales
Générer un nombre aléatoire dans Excel tient en une ligne. Ce qui fait réellement trébucher, c'est de le contrôler — l'empêcher de se recalculer à l'instant où vous touchez quoi que ce soit d'autre, et comprendre que « des entiers aléatoires » et « un échantillon aléatoire » sont deux tâches distinctes. Assimilez le modèle de volatilité et l'astuce du figeage, et tout ce coin d'Excel devient prévisible.
Ce que vous allez apprendre
- Le modèle mental : ALEA et ALEA.ENTRE.BORNES sont des dés vivants, pas des valeurs stockées
- Pourquoi la volatilité est la cause n° 1 du « mes nombres changent tout le temps »
- Comment figer les nombres aléatoires pour qu'ils cessent de bouger (Collage spécial → Valeurs)
- Pourquoi
ALEA.ENTRE.BORNESrépète — bornes incluses, avec remise - Le motif
=a+(b-a)*ALEA()pour des décimaux aléatoires dans n'importe quelle plage - Quand la volatilité ralentit discrètement un gros modèle — et quoi y faire
Le modèle mental : des dés vivants, pas des nombres stockés
La plupart des fonctions Excel recherchent une information ou calculent une réponse fixe — demandez deux fois, obtenez la même chose. Les fonctions aléatoires sont différentes : chacune est un dé qu'Excel relance à chaque recalcul de la feuille. La cellule ne contient pas un nombre ; elle contient l'instruction d'en tirer un maintenant. Ce seul basculement mental explique tout ce qui suit.
ALEA() ne prend aucun argument et renvoie un décimal uniforme dans l'intervalle
semi-ouvert [0 ; 1[ — zéro est possible, un ne l'est pas. ALEA.ENTRE.BORNES(min; max)
renvoie un nombre entier de min à max, et — c'est le point que l'on lit de travers —
les deux bornes sont incluses, si bien que ALEA.ENTRE.BORNES(1; 6) peut vraiment
renvoyer 1 ou 6. Le nombre de résultats possibles vaut max − min + 1 (six pour un
dé, pas cinq).
Tout ce que vous construirez un jour avec de l'aléatoire n'est que l'un de ces deux dés, remodelé : un dé décimal que vous étirez sur n'importe quelle plage, ou un dé entier que vous lancez pour des identifiants, des données de test ou une logique de jeu de dés.
La volatilité, le piège n° 1 : elles se relancent à chaque modification
Tapez =ALEA.ENTRE.BORNES(1; 100) en A1, puis tapez votre nom en A2 et appuyez sur
Entrée. Regardez A1 — elle a changé. Vous ne l'avez pas touchée, mais vous avez
déclenché un recalcul, et une fonction volatile se relance à chaque recalcul :
toute modification n'importe où, un appui sur F9, un tri, l'insertion d'une ligne, ou
la simple réouverture du classeur.
=ALEA() ' un NOUVEAU nombre à chaque recalcul — chaque édition, chaque F9, chaque ouverture
=ALEA.ENTRE.BORNES(1;100) ' pareil : jamais immobile tant que c'est une formule vivante
C'est la racine de presque toutes les plaintes sur ALEA/ALEA.ENTRE.BORNES — « mes affectations aléatoires se réorganisent toutes seules », « les nombres ont changé avant que je puisse les copier », « mon échantillon est différent à chaque ouverture du fichier ». Rien de tout cela n'est un dysfonctionnement. C'est un dé vivant qui fait exactement ce que fait un dé. La seule question est de savoir si vous le voulez vivant (un modèle de simulation qui doit se relancer à la demande) ou figé (un échantillon que vous devez conserver). Cette décision fait l'objet de la section suivante.
Comment figer les nombres aléatoires pour qu'ils cessent de bouger
Quand vous voulez conserver un jeu de nombres aléatoires — les gagnants sont tirés, l'échantillon est constitué — vous convertissez les formules vivantes en valeurs statiques. Excel n'a pas de graine aléatoire (seed), donc le figeage est le seul moyen de rendre les résultats reproductibles :
- Sélectionnez les cellules contenant
=ALEA()/=ALEA.ENTRE.BORNES(...). - Copiez (
Ctrl+C). - Collage spécial → Valeurs (
Ctrl+Alt+V, puisV) sur la même sélection.
Les formules deviennent de simples nombres qui ne se relanceront plus jamais. Pour une
cellule unique, vous pouvez aussi sélectionner la formule dans la barre de formule et
appuyer sur F9 pour la figer en littéral.
Règle : tirez avec une formule vivante, puis figez en valeurs dès que le tirage est définitif. Un résultat aléatoire qui change silencieusement à la frappe suivante est pire qu'inutile pour tout ce que vous allez envoyer, auditer ou exploiter — et « je le copierai plus tard » échoue dès la première fois qu'un tiers ouvre le fichier et qu'Excel se relance au chargement.
ALEA.ENTRE.BORNES répète : elle lance des dés, elle ne distribue pas des cartes
Voici l'idée fausse qui cause de vrais dégâts. On dégaine ALEA.ENTRE.BORNES(1; 500)
pour attribuer 500 identifiants uniques, ou on l'étire sur 50 lignes pour « tirer 50
personnes au hasard », et on s'étonne de voir des valeurs se répéter.
=ALEA.ENTRE.BORNES(1; 500) ' recopiée sur 500 lignes -> doublons garantis
ALEA.ENTRE.BORNES échantillonne avec remise : chaque tirage est indépendant et toute la plage reste disponible à chaque fois, exactement comme un dé qui peut tomber deux fois de suite sur 4. Par le calcul du problème des anniversaires, les doublons apparaissent bien plus tôt que l'intuition ne le prévoit — lancez un dé 1–100 seulement 12 fois et une collision est déjà plus probable qu'improbable.
La ligne de partage est donc nette :
- Répétitions autorisées (dés, notes simulées, jeu de données de test) →
ALEA.ENTRE.BORNESest le bon choix. - Chaque résultat distinct (gagnants uniques, échantillon de lignes sans remise, mélange d'une liste) → ALEA.ENTRE.BORNES est le mauvais outil, purement et simplement. C'est un problème de sélection, résolu en attachant une clé aléatoire puis en triant — voir Sélectionner, échantillonner et mélanger au hasard dans Excel.
Empiler des garde-fous SI(NB.SI(...)) sur ALEA.ENTRE.BORNES pour forcer l'unicité est
un rustine fragile posée sur le mauvais outil. Adoptez plutôt le motif tri-par-aléatoire.
Décimaux aléatoires dans n'importe quelle plage : le motif =a+(b-a)*ALEA()
ALEA.ENTRE.BORNES ne produit que des entiers, si bien que le réflexe d'obtenir un prix
aléatoire avec ALEA.ENTRE.BORNES(50; 100) (entiers seulement) ou
ALEA.ENTRE.BORNES(5000; 10000)/100 (calé sur une grille au centime, subtilement biaisé)
est un contournement du mauvais outil. Pour des valeurs aléatoires continues, étirez
ALEA() :
=a + (b - a) * ALEA() ' décimal uniforme dans [a ; b[
=50 + (100 - 50) * ALEA() ' -> un décimal n'importe où dans [50 ; 100[
=ARRONDI(50 + 50*ALEA(); 2) ' -> le même, arrondi à un vrai prix
=AUJOURDHUI() + ALEA.ENTRE.BORNES(0; 30) ' -> une date aléatoire dans les 30 prochains jours
Lisez le motif à travers le modèle mental : ALEA() donne une fraction du chemin de 0
à 1 ; la multiplication par la largeur (b − a) met cette fraction à l'échelle de votre
plage ; l'ajout de a la fait glisser jusqu'au bon point de départ. Enveloppez-la dans
ARRONDI quand vous voulez des décimales propres ou une
devise. Cette seule formule couvre tout « nombre aléatoire entre X et Y » qui n'est pas
un simple entier.
Savoir trancher
ALEA contre ALEA.ENTRE.BORNES, c'est la partie facile — ALEA pour les décimaux,
ALEA.ENTRE.BORNES pour les entiers, et l'étirement a+(b-a)*ALEA() pour un décimal
dans une plage sur mesure. Les décisions qui comptent vraiment portent sur l'état,
pas sur la syntaxe. Premièrement : ce dé est-il censé rester vivant, ou doit-il être
figé ? Si les nombres appuient une décision, figez-les en valeurs immédiatement — un
échantillon non figé ne survivra pas au prochain recalcul, encore moins à un audit.
Deuxièmement : avez-vous besoin de répétitions ou non ? ALEA.ENTRE.BORNES répète sans
état d'âme, donc dès que votre tâche dit « unique » ou « échantillon sans remise »,
cessez de l'empiler et passez à l'approche tri-par-aléatoire. Réussissez ces deux
arbitrages et l'aléatoire dans Excel cesse de vous résister.
Comment ExcelMaster vous aide
La volatilité et le piège des répétitions sont exactement le genre de choses qu'un
assistant de formules devrait gérer à votre place. Dites à ExcelMaster « donne-moi
50 notes de test aléatoires entre 60 et 100 » et il écrit le bon générateur, puis vous
propose de figer le résultat en valeurs pour qu'il cesse de se relancer. Demandez « un
prix aléatoire entre 50 et 99,99 € » et il choisit =ARRONDI(50+49,99*ALEA(); 2) plutôt
qu'un bricolage d'entiers biaisé. Et quand vous demandez quelque chose qui exige
réellement des résultats distincts — « tire 20 clients au hasard, sans répétition » —
il reconnaît un travail d'échantillonnage et construit la formule tri-par-aléatoire
plutôt qu'un ALEA.ENTRE.BORNES que vous devriez dédoublonner à la main.
Questions fréquentes
Qu'est-ce que la fonction ALEA dans Excel ?
=ALEA() renvoie un décimal aléatoire uniformément distribué, supérieur ou égal à 0
et strictement inférieur à 1. Elle ne prend aucun argument. Elle est volatile, donc
elle génère une nouvelle valeur à chaque recalcul de la feuille — à toute modification,
à l'appui sur F9, ou à la réouverture du fichier. Pour obtenir un décimal dans une
plage sur mesure [a ; b[, utilisez =a+(b-a)*ALEA().
Comment fonctionne ALEA.ENTRE.BORNES, et les bornes sont-elles incluses ?
=ALEA.ENTRE.BORNES(min; max) renvoie un entier aléatoire entre min et max avec
les deux bornes incluses — =ALEA.ENTRE.BORNES(1; 6) peut renvoyer 1, 2, 3, 4, 5 ou
6. Les bornes peuvent être négatives (=ALEA.ENTRE.BORNES(-10; 10)). Comme ALEA, elle
est volatile et se relance à chaque recalcul.
Pourquoi mes nombres aléatoires changent-ils tout le temps dans Excel ?
Parce qu'ALEA et ALEA.ENTRE.BORNES sont des fonctions volatiles — elles produisent
une nouvelle valeur aléatoire à chaque recalcul, déclenché par presque toute action
(modifier une cellule, appuyer sur F9, trier, ou rouvrir le classeur). Pour les
empêcher de changer, convertissez-les en valeurs statiques : sélectionnez les cellules,
Copier, puis Collage spécial → Valeurs.
Comment empêcher les nombres aléatoires de se recalculer ?
Figez-les en valeurs. Sélectionnez les cellules contenant les formules aléatoires,
appuyez sur Ctrl+C, puis collez sur la même plage avec Collage spécial → Valeurs
(Ctrl+Alt+V, puis V). Les cellules deviennent des nombres fixes qui ne se relancent
plus. Pour une cellule unique, cliquez dans la barre de formule, sélectionnez la formule
et appuyez sur F9 pour la convertir en valeur littérale.
Comment générer des nombres aléatoires sans doublons ?
N'utilisez pas ALEA.ENTRE.BORNES — elle échantillonne avec remise et va répéter. Pour
obtenir des valeurs aléatoires distinctes ou un échantillon sans répétition, attachez une
clé aléatoire à chaque élément et triez dessus, par exemple =SORTBY(liste; TABLEAU.ALEA(LIGNES(liste))) pour mélanger, ou prenez-en les N premières. Voir
Sélectionner, échantillonner et mélanger au hasard dans
Excel.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 11/07/2026.
Guides associés : Excel TABLEAU.ALEA · Sélection & échantillonnage aléatoires · Excel ARRONDI · Compter les valeurs uniques
