#Populates an existing attribute with a randomly generated value try: import operator, os, random, traceback, sys, arcpy arcpy.AddMessage("Adding random numbers to an existing attribute.") arcpy.AddMessage("Copyright 2011, Gerry Gabrisch, gerry@gabrisch.us") #Path to the feature class. fc = arcpy.GetParameterAsText(0) #The Attribute to populate... attribute = arcpy.GetParameterAsText(1) uc = arcpy.UpdateCursor(fc) for row in uc: x = random.random() row.setValue(attribute, x) uc.updateRow(row) arcpy.AddMessage("Done") except arcpy.ExecuteError: msgs = arcpy.GetMessages(2) arcpy.AddError(msgs) arcpy.AddMessage(msgs) except: tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] pymsg = "PYTHON ERRORS:\nTraceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) msgs = "ArcPy ERRORS:\n" + arcpy.GetMessages(2) + "\n" arcpy.AddError(pymsg) arcpy.AddError(msgs) arcpy.AddMessage(pymsg + "\n") arcpy.AddMessage(msgs)
I'm guessing you're eight years beyond needing an answer to this question. But here is some more info: In ArcGIS Pro 2.8, you can use the Create Random Points tool to select a subset, using your original point feature class as the "Constraining Feature Class". The attributes are not preserved in the output as you note; however, you can join via the CID field, matching to the OID in the original data source.
Or select by location using the new feature as the intersecting feature!