When processing images with Python, you should try and use vectorised Numpy operations because they are much faster, and less prone to errors. If you start using Python lists and for loops, you have probably gone wrong already IMHO.
I am not certain, but I think you want to generate a random image and subtract it from an input image so you need both parts to recreate the whole, so I think you want code more like this:
import numpy as np
from PIL import Image
# Open paddington and ensure he is 3-channel RGB rather than palette
im = Image.open('paddington.png').convert('RGB')
# Make Numpy array from him
na = np.array(im)
# Make another Numpy array (i.e. image) same size as Paddington and full of random numbers
rand = np.random.randint(0,256, na.shape, dtype=np.uint8)
# See how that looks
Image.fromarray(rand).show()
# Subtract random image from Paddington - this vectorised Numpy, fast and easy to get right
split = na - rand
# See how that looks
Image.fromarray(split).show()
# Recreate original by adding random image back to split - vectorised Numpy again
joined = split + rand
# See how that looks
Image.fromarray(joined).show()


If you prefer to persist with lists and for loops, there are a few issues in your code:
you keep recycling a, so initially it is PIL Image, then it's a Numpy array, then a PIL Image so it is hard to refer back to anything you calculated earlier
rather than c = numpy.array(value) which gives you an array of np.int64, you should use c = numpy.array(value, dtype=np.uint8) to get an unsigned 8-bit array, because PIL will not like 192-bits/pixel
the shape of the Numpy array you create from the list will be wrong and need reshaping with d = Image.fromarray(c.reshape(720,1280,3))
rather than calling random.randrange() three times for every pixel and converting the result to a Numpy array, you could call np.random.randint(0,256,(3),dtype=np.uint8) to get all three values as a Numpy array in one call
you are probably going to have problems with overflows and underflows since you lose the underlying type of values in lists