Here’s a 5 minutes cheap solution until you come up with a more elegant one by yourself:

1) Precompute the area of each triangle.

2) Estabilish some arbitrary chance-factor to multiply by the computed area of each triangle (ideally this must give you an integer number that increases as the area of the triangle increases). You can also just reuse the very Triangle’s area, if that ends up working for you (below you’ll see why).

3) Assign an arbitrary numeric integer Id to each triangle (no two triangles must have the same Id).

4) Now prepare an array of Id’s. In it you write a copy of each triangle’s Id, based on the magnitude of the chance factor for the triangle in exam. For example, a triangle with Area = 10 might have 10 instances of its Id in the array, whereas a triangle with Area = 3 might have only 3 instances of its Id.

5) Randomly pick any of the Ids inside the array.

Simplicity is bliss.

Bigger triangles will naturally have more Ids in the array, and thus
more chances to be picked. Conversely, smaller triangles will have less
Ids in the array, and so less chances to be picked. I ignore how many
triangles we’re talking about here (you’ve been vague). If your list is
reasonably big, you ought to find a better procedure than this. You’ll
probably want to, anyway. This is only good for a draft - or for a
scenario wherein performance is irrelevant..

Here is my problem…

I have X number of triangles, each with a different area (different size). I would like to randomly pick one from the list (that part is easy), BUT, those with a larger area must have a greater chance of being picked, and those with mallest area, a lesser chance of getting hit.

Any idea on how to do this? I googled around by found nothing!

Thanks