du hast doch eine random-variable.
diese hat einen wert von x bis y. z.b. 0-1 oder auch 1 - 50, je nach dem, wie du bei rand den wertebereich haben möchtest. man kann aber auch selbst hochtransformieren durch einfache multiplikation.
dann mußt du eine fallunterscheidung treffen, welche im 1. fall 90% abdeckt, und des rest linear aufteilt.
ich habe eben nicht die exakte js notation im kopf, aber so ähnlich:
zufallsvariable = rand(1, 100) // soll eine zahl zwischen 1 und 100 liefern.
if (zufallsvariable <= 90) fall1 (90%)
else zufallsvariable modulo restlichefälle ergibt linear restfälle