| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod GetRandomIndex ( | 
|   RealVector vector | 
| ) as Number | 
| { | 
|   TextBody: | 
|   [* | 
|     totalweight := vector.Sum();  | 
|     r := Real::Random(0.0, totalweight );  | 
|     i := -1; maxindex := vector.Size() - 1;   | 
|     if (maxindex >= 0 ) // check for empty set | 
|     { | 
|       cumulativesum := 0.0;  | 
|       while( i < maxindex and cumulativesum <= r )  | 
|       { | 
|         i++;  | 
|         cumulativesum := cumulativesum + vector.Get(  i );  | 
|       } | 
|     } | 
|     return i; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |