export function pickWeightedSegment(segments: any[]) {
  const totalWeight = segments.reduce(
    (sum, segment) => sum + segment.weight,
    0,
  );

  const random = Math.random() * totalWeight;

  let cumulativeWeight = 0;

  for (const segment of segments) {
    cumulativeWeight += segment.weight;

    if (random <= cumulativeWeight) {
      return segment;
    }
  }

  return segments[segments.length - 1];
}