Les derniers bits d'un générateur à congruence linéaire comme celui de TIGCCLIB sont les moins aléatoires, donc la meilleure méthode est de prendre les premiers bits, c'est-à-dire de faire un shift vers la droite par 13.
Quand tu prends le modulo par 7, tu utilises tous les bits (7 étant impair et même premier), donc c'est mieux que par 8 (ton andi #7), mais le mieux reste d'utiliser cet algorithme (qui se trouve d'ailleurs à l'intérieur de stdlib.h):
#define random(x) ((short)((long)(unsigned short)rand()*(unsigned short)(x)/32768))
ce qui pour une puissance de 2 revient à diviser par (32768/x) (parce que 32768/x est entier), ce qui revient donc à une division par une puissance par 2 et à la fin des comptes à un shift vers la droite.
Oui mais ton andi donne un nombre entre 0 et 7 (soit 8 nombres, alors que tu n'en veux que 7). Ton divu donne un nombre entre 0 et 6 (soit 7 valeurs possibles, voilà pourquoi ça marche mieux).
C'est ça que je disais.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
En principe, ce mulu devrait marcher, mais rand n'est certainement pas un générateur de nombres aléatoires parfait (loin de là).
Mais comment ça fonctionne ? Pour divu le swap permet de récupèrer le reste de la division, dont la distribution est uniforme ou presque (vu que 216 n'est pas divisible par 7 ou 17). Mais pour mulu ?

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboZerosquare -> c'est pour récupérer les bits supérieurs (les "plus aléatoires" si j'ai bien compris) dans l'upper word.
Le problème est que à un bit près, ou ça tire trop en positif (vraiment trop), ou trop en négatif (...).
Oh attends, en fait rand() retourne un résultat 8 bits ? Je pensais que c'était sur 16 bits...

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo15 bits plutôt (plage 0 ~ 32767). Ah OK, j'ai pigé le principe je crois. Mais il faut multiplier par 34 (2 * 17) au lieu de 17, vu que le swap réalise une division entière par 216, alors que la valeur maximale de rand est 215 - 1.

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo