def METHOD_NAME(self, size):
    # Draw samples from a distribution centered on the North pole
    np_ra = numpy.random.uniform(
        low=0,
        high=(2*numpy.pi),
        size=size
    )
    np_dec = numpy.random.rayleigh(
        scale=self.rayleigh_scale,
        size=size
    )
    # Convert the samples to intermediate cartesian representation
    np_cart = numpy.empty(shape=(size, 3))
    np_cart[:, 0] = numpy.cos(np_ra) * numpy.sin(np_dec)
    np_cart[:, 1] = numpy.sin(np_ra) * numpy.sin(np_dec)
    np_cart[:, 2] = numpy.cos(np_dec)
    # Rotate the samples according to our pre-built rotation
    rot_cart = self.rotation.apply(np_cart)
    # Convert the samples back to spherical coordinates.
    # Some unpleasant conditional operations are needed
    # to get the correct angle convention.
    rot_radec = FieldArray(
        size,
        dtype=[
            ('ra', '<f8'),
            ('dec', '<f8')
        ]
    )
    rot_radec['ra'] = numpy.arctan2(rot_cart[:, 1], rot_cart[:, 0])
    neg_mask = rot_radec['ra'] < 0
    rot_radec['ra'][neg_mask] += 2 * numpy.pi
    rot_radec['dec'] = numpy.arcsin(rot_cart[:, 2])
    return rot_radec