Two additions should make this work assuming I understand what you're looking to do here.
Setting the overwrite environment variable to true will skip errors where the dataset already exists. Since you only need random points within the loop we can get rid of them after each iteration.
Second, if you set up a loop, you can append your counter to the filename when you run your intersect. This will save all of your files rather than overwriting them. If you'd rather have more descriptive names you could create a python list (example below), and append an item from that list to the filename on each iteration.
# example of a python list
list = ["filename1", "filename2", "filename3"]
To access the item in a list, use the counter in the loop.
# While the counter is less than the length of the list (we start counting from 0 instead of 1) print the list item
i = 0
while i < len(list):
print list[i]
i += 1
Example code:
# Import arcpy module
import arcpy
arcpy.env.overwriteOutput = True
# Local variables:
Python_Intersect_prac = "D:\\Python_Intersect_prac"
Plume_dissolve1 = "Plume_dissolve1"
Random_Hs_shp = "D:\\Python_Intersect_prac\\Random_Hs.shp"
Random_Hs_b_shp = "C:\\Users\\c1022376\\My Documents\\Random_Hs_b.shp"
Random_Hs_b_Intersect = "C:\\Users\\c1022376\\My Documents\\ArcGIS\\Default1.gdb\\Random_Hs_b_Intersect"
# Initialize counter
i = 0
# How many times would you like to loop? (integer)
j = 5 # this will run 5 times
# the following code will iterate j times
while i < j:
# Process: Create Random Points
arcpy.CreateRandomPoints_management(Python_Intersect_prac, "Random_Hs", "", "-180 -90 180 90", "35", "0 Unknown", "POINT", "0")
# Process: Buffer
arcpy.Buffer_analysis(Random_Hs_shp, Random_Hs_b_shp, "4 DecimalDegrees", "FULL", "ROUND", "ALL", "")
# Process: Intersect
arcpy.Intersect_analysis("'C:\\Users\\c1022376\\My Documents\\Random_Hs_b" + i + ".shp' #;Plume_dissolve1 #", Random_Hs_b_Intersect, "ALL", "", "INPUT")
# Iterate the counter
i += 1