Requesting advice for creating a random variate generator for use with density dist

I have a distribution with the following pdf and cdf that I wish to use in pymc.DensityDist. Can someone took at this at let me know if my random generator looks right–this is my first time trying to make one. I based the radom generator on information gathered from here.

\begin{align*} cdf(x) &= \exp\left(-\beta^\alpha\left(\frac{\lambda}{x}\right)^{\alpha\kappa}\right) \\ pdf(x) &= \alpha\kappa\beta^\alpha\lambda^{\alpha\kappa}x^{-1-\alpha\kappa}\exp\left(-\beta^\alpha\left(\frac{\lambda}{x}\right)^{\alpha\kappa}\right) \end{align*}
import pytensor.tensor as T
import numpy as np
def FWD(x,alpha, beta, lam, kapa):
        
    block_1 = T.log(alpha*kapa*(beta**alpha)*lam**(alpha*kapa))
    block_2 = (1+alpha*kapa)*T.log(x)
    block_3 = (beta**alpha)*(lam/x)**(alpha*kapa)

    lopp = block_1 - block_2 - block_3
    
    return logp

def FRW_rsv(y: 'array of values',alpha: 'single value for alpha', beta: 'single value for beta', 
            lam: 'single value for lambda', kappa: 'single value for kappa', size=None: '#of samples to generate'): -> tesor
    if size is not None:
        assert size == y.shape
    else:
        size = y.shape
    alpha = alpha[0]
    beta = beta[0]
    lam = lam[0]
    kappa = kappa[0]
    U = np.random.uniform(size = y.shape)
    X = np.exp(((-np.log(np.log(U)) +np.log(-beta**alpha))/-alpha*kapa) +np.log(alpha)) #inverse transfomation of cdf
    return X