With Shapely: http://toblerity.org/shapely/manual.html#polygons

The `polygon` in code below must be Polygon object.


    from shapely import Point
    def generate_random(number, polygon):
        list_of_points = []
        minx, miny, maxx, maxy = polygon.bounds
        counter = 0
        while counter < number:
            pnt = Point(random.uniform(minx, maxx), random.uniform(miny, maxy))
            if polygon.contains(pnt):
                list_of_points.append(pnt)
                counter += 1